Olg*_*lga 8 vb.net datatable primary-key
我使用VB.NET dataAdapter从Oracle DataBase导入表.我使用"fill"命令将导入的数据添加到DataSet.在DataTable已经填充数据之后,如何将DataTable的特定列定义为PrimaryKey?
Kle*_*nux 11
只要列中的值是唯一的
table.PrimaryKey = new DataColumn[] { table.Columns["Id"] };
Run Code Online (Sandbox Code Playgroud)
调整列名称.
Mat*_*Roy 10
这是VB中的一行代码(问题是"使用VB.NET").此示例使用索引的2列:
table.PrimaryKey = New DataColumn() {table.Columns("column1"), _
table.Columns("column2")}
Run Code Online (Sandbox Code Playgroud)
更新:这是关于如何使用这2列索引查找行的另一个单行:
table.Rows.Find(New Object() {value1, value2}) '<- DataRow returned
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式设置表的主键:
Dim table As New DataTable()
table.Columns.Add(New DataColumn("MyColumn"))
Dim primaryKey(1) As DataColumn
primaryKey(1) = table.Columns("MyColumn")
table.PrimaryKey = primaryKey
Run Code Online (Sandbox Code Playgroud)
为了能够使用主键,您需要确保给定列的所有值都是唯一的.
我主要使用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");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51664 次 |
| 最近记录: |