我使用VB.NET数据适配器从Oracle数据库导入表。我使用“fill”命令将导入的数据添加到DataSet中。在DataTable已经填充数据之后,如何将DataTable的特定列定义为PrimaryKey?如何在创建后将VB.NET DataTable列定义为主键
6
A
回答
5
您可以设定一个表的主键:
Dim table As New DataTable()
table.Columns.Add(New DataColumn("MyColumn"))
Dim primaryKey(1) As DataColumn
primaryKey(1) = table.Columns("MyColumn")
table.PrimaryKey = primaryKey
为了能够使用主键,您需要确保在给定的列中的所有值都是唯一的。
我主要是在C#中工作,有一对夫妇的扩展方法我用我需要让“整洁”的叫声,你可能要考虑转换到VB和使用:
public static void SetPrimaryKey(this DataTable value, string columnName)
{
value.PrimaryKey = new DataColumn[] { value.Columns[columnName] };
}
public static DataRow FindByPrimaryKey(this DataTable value, object key)
{
return value.Rows.Find(key);
}
// I can then do:
DataTable table = CallToRoutineThatGetsMyDataTable();
table.SetPrimaryKey("PKColumnName");
DataRow result = table.FindByPrimaryKey("valueToFindWith");
9
只要在列中的值是唯一的
table.PrimaryKey = new DataColumn[] { table.Columns["Id"] };
调整为列名。
9
这里VB中的一行代码(问题在于“使用VB.NET”)。这个例子是2列索引:
table.PrimaryKey = New DataColumn() {table.Columns("column1"), _
table.Columns("column2")}
更新:下面是关于如何使用这个2列索引来查找行另外一个班轮:
table.Rows.Find(New Object() {value1, value2}) '<- DataRow returned
1
感谢您的回答罗布 - vb版本存在一个小问题,尽管索引应该为零:
Dim table As New DataTable()
table.Columns.Add(New DataColumn("MyColumn"))
Dim primaryKey(1) As DataColumn
primaryKey(0) = table.Columns("MyColumn")
table.PrimaryKey = primaryKey
相关问题
- 1. DataTable Vb.net创建复合键
- 2. VB.NET创建datatable?
- 3. 如何创建复合主键是否已定义主键。 MySQL
- 4. 如果未将主键定义为列,那么如何将主键指定为此?
- 5. 如何在访问2010中创建自定义主键?
- 6. 将DataTable构建为自定义控件
- 7. 我将如何创建vb.net
- 8. 如何在VB.NET中创建自定义对象/自定义对象列表?
- 9. 如何在FileMaker表中创建新主键,然后将现有关系修改为基于新创建的键?
- 10. 如何在表中为持久性主键创建列名?
- 11. 创建自定义后退键的UINavigationController
- 12. 将SQL标识创建为主键?
- 13. 如何仅在主键大于最后一个主键时填充DataTable行?
- 14. ZF2主义创建实体whitout主键
- 15. 创建JSON键,值在VB.NET
- 16. 如何创建自定义主屏幕
- 17. 如何创建自定义键盘
- 18. 如何创建自定义外键?
- 19. 如何在创建后将所创建的列创建为只读?
- 20. 如何提高在VB.net中创建DataTable的性能?
- 21. 如何将列设置为主键?
- 22. 用PHP创建自定义键阵列
- 23. 如何在DBF表上创建主键?
- 24. 如何在ClickHouse中创建主键
- 25. 无法创建外键多列主键
- 26. 如何创建在vb.net
- 27. 在两列上创建主键
- 28. 为android创建自定义键盘
- 29. 为iOS键盘创建自定义Emojis
- 30. 在主体框架中将主键定义为虚拟