2012-05-13 12 views
2

ユーザー入力に一致する列の値を持つデータテーブルから行の値を取得しようとしています。Datatableから列の値を取得する方法

私は、このリンクが見つかりました:

How to get a specific column value from a datatable?

をしかし、私は

where userID [email protected] and DateBooked [email protected] and 
[email protected] and [email protected] 

を言うことができるようにしたいので、私はそれについてはよく分かりません。

この例は私の状況に適していますか?

+0

@userimputには正しいユーザー入力が含まれていますか? –

+0

はい、それは正しいです! – user1270384

答えて

2

提供されているリンクの例に従うことができます。あなたに基づいて単一のレコードを持っています提供

あなたのこの

  DataTable dt = new DataTable(); 
      dt.Columns.Add("UserID"); 
      dt.Columns.Add("FullName"); 
      dt.Columns.Add("DateBooked"); 
      dt.Columns.Add("RoomQty"); 
      dt.Columns.Add("NoofNights"); 

      dt.Rows.Add(1, "John Doe", DateTime.Now.AddDays(-7).Date, 2, 3); 
      dt.Rows.Add(2, "Jack Sparrow", DateTime.Now.AddDays(-14).Date, 1, 1); 
      dt.Rows.Add(3, "Arthur Wilson", DateTime.Now.AddDays(-10).Date, 2, 2); 
      dt.Rows.Add(4, "Amy Jackson", DateTime.Now.AddDays(-5).Date, 4, 2); 
      dt.Rows.Add(5, "Tim Lee", DateTime.Now.AddDays(-1).Date, 1, 5); 
      dt.Rows.Add(2, "Jack Sparrow", DateTime.Now.AddDays(-5).Date, 3, 2); 

のようなのDataTableを持っているし、あなたの入力パラメータは

  int userInput = 2; 
      DateTime dateBooked = DateTime.Now.AddDays(-14).Date; 
      int roomQty = 1; 
      int noOfNights = 1; 

あるあなたが(このよう'FullName'列値を取得することができたと条件)

  string FullName = (from DataRow dr in dt.Rows 
           where Convert.ToInt32(dr["UserID"]) == userInput && 
           Convert.ToDateTime(dr["DateBooked"]) == dateBooked && 
           Convert.ToInt32(dr["RoomQty"]) == roomQty && 
           Convert.ToInt32(dr["NoofNights"]) == noOfNights 
           select (string)dr["FullName"]).FirstOrDefault(); 
+0

私はこのおかげで試してみるよ – user1270384

0
IEnumerable<String> userNames = 
    dataTable 
    .AsEnumerable() 
    .Where(row => 
     row.Field<Int32>("userID") == userinput && 
     row.Field<DateTime>("DateBooked") == dateBooked && 
     row.Field<Int32>("RoomQty") == roomQty && 
     row.Field<Int32>("NoofNights") == noofNights) 
    .Select(row => row.Field<String>("userName")); 
関連する問題