我的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 );
我想检索第二行(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());
是否有类似的方法使用主键提取?
答案 0 :(得分:6)
您可以使用DataTable方法根据主键从DataRowCollection.Find检索行。在你的情况下,它将是:
DataRow matchingRow = table.Rows.Find(7.0D);
double value = (double)matchingRow["load"];
答案 1 :(得分:2)
您可以使用Find方法查找使用主键
的行DataRow row = dataTable.Rows.Find("your key");
if(null != row)
{
string value = row["ColumnName"];
}