2012-02-14 8 views
5

kullanarak DataTable'dan değer almak C# kodumda bir sorunum var. Her birine atanan birincil anahtar ile birkaç DataTable'ı oluşturdum. Yapmak istediğim tek bir sütundan tek bir satır almak. içinde, birincil anahtar sütunuC#: PrimaryTey

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); 

Ve 7.0 aramak için ikinci sıradaki (20.7), ben istiyorum için "yük" almak istiyorum:

Bu kodu vardır Sağlar ki Tablo. Sadece test, böyle yapmak üzere test mankeni:

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()); 

İlköğretim tuşunu kullanarak ayıklamak için benzer bir yolu var mı?

cevap

6

Sen DataRowCollection.Find yöntemi kullanarak birincil anahtara göre bir DataTable bir satır alabilir kullanarak bir satır bulmak için Bul yöntemini kullanabilirsiniz. Sizin durumunuzda:

DataRow matchingRow = table.Rows.Find(7.0D); 
double value = (double)matchingRow["load"]; 
+0

Teşekkürler beyler! Uygulanan Enricos çözümü ve bir cazibe gibi çalıştı! – erikduvet

2

Birincil Anahtar

DataRow row = dataTable.Rows.Find("your key"); 
if(null != row) 
{ 
    string value = row["ColumnName"]; 
}