C#:使用PrimaryKey从DataTable中检索值

eri*_*vet 5 c# datatable ado.net primary-key

我的C#代码存在问题.我已经设置了几个DataTables,并为每个DataTable分配了一个主键.我想要做的是从单个列中检索单行.

让我说我有这个代码:

DataColumn Pcolumn = new DataColumn();
DataColumn[] key = new DataColumn[1];

Pcolumn.DataType = System.Type.GetType("System.Double");

Pcolumn.ColumnName = "length";
key[0] = Pcolumn;


table6F.Columns.Add(Pcolumn);
table6F.Columns.Add("Area", typeof(double));
table6F.Columns.Add("load", typeof(double));
table6F.Columns.Add("weigth", typeof(double));

table6F.PrimaryKey = key;
table.Rows.Add(6.0, 14.0, 17.8 , 11.0 );
table.Rows.Add(7.0, 16.2 , 20.7 , 16.0 );
Run Code Online (Sandbox Code Playgroud)

我想检索第二行(20.7)的"加载",我想在表中搜索7.0,主键列.我虚拟测试这样做,只是为了测试:

Object oV;
double load;

//Get an Table object given the specific row number, this dummy i always set to 0.
// Given Column
oV = table.Rows[0]["load"];
load = Convert.ToDouble(oV.ToString());
Run Code Online (Sandbox Code Playgroud)

是否有类似的方法使用主键提取?

Enr*_*lio 6

您可以使用DataRowCollection.Find方法基于其主键从DataTable中检索行.在你的情况下,它将是:

DataRow matchingRow = table.Rows.Find(7.0D);
double value = (double)matchingRow["load"];
Run Code Online (Sandbox Code Playgroud)