2012-12-14 29 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";