2012-12-14 64 views
2

我有一個數字和名稱的列表。我想搜索一個數據庫,並找到數字是否與我的sql選擇匹配。如果是這樣,我需要將它填充到數據表以及名稱。然後在數據表中的foreach行寫入另一個列表。我無法將名稱填充到數據表中,因爲我沒有在SQl select中將它用作參數。使用列表成員填充數據表,如果它匹配SQL選擇

DataTable dt = new DataTable(); 

try { 
    using (SqlConnection conn = getconnection()) { 
     conn.Open(); 
     SqlCommand cmd = conn.CreateCommand(); 
     cmd.CommandTimeout = 5000; 
     string select = @"SELECT NBR 
        FROM People 
        where ID in (15,17) and NBR=Nbr and ACCEPTED=0"; 

     foreach (Fields f in Members) { 
      cmd.Parameters.Clear(); 
      cmd.Parameters.AddWithValue("@Nbr", f.nbr); 
      cmd.CommandText = select; 
      SqlDataAdapter adapt = new SqlDataAdapter(cmd); 
      //if f.nbr matches sql select fill it to datatable how can I fill dt with f.name as well? 
      adapt.Fill(dt); 
     } 
    } 

    foreach (DataRow row in dt.Rows) { 
     Fields f1 = new Fields(); 
     f1.nbr= Convert.ToInt64(row["NBR"]); 
     // f1.name=Convert.ToString(row["Name"]???? 
     Not.Add(f1); 
    } 
+0

那麼,爲什麼你不包括在查詢中的名字嗎? – Melanie

+0

,因爲該sql表沒有名稱字段只有一個nbr字段 – Jt2ouan

+0

在你的選擇字符串中,你可以做一個連接到有名字的表嗎? – Melanie

回答

0

使用

string select = @"SELECT NBR, Name 
        FROM People 
        where ID in (15,17) and [email protected] and ACCEPTED=0";