[英]Extracting data from sql table by comparing data from a List
我有一个IDS列表,在LIST(C#)中说1,2,4,6,我需要做的是从表Connections中提取与这些IDS相对应的数据
我的清单代码如下:
string str = "SELECT id1 FROM [Example] WHERE id2 = '1' UNION SELECT id2 FROM Example WHERE id1 = '1'";
ds = new DataSet(str);
da = new SqlDataAdapter(str, con);
da.Fill(ds);
//GridView1.DataSource = ds;
//GridView1.DataBind();
DataTable dtDetails = ds.Tables[0];
List<int> lst =
(from dr in dtDetails.AsEnumerable()
select Convert.ToInt32(dr["id1"])).ToList<int>();
上面的代码所做的是在列表中检索2 3 4 6的否
我想做的是检索对应于这些no的id2就是这样吗?
编辑:
string str = "SELECT id1 FROM [Example] WHERE id2 = '1' UNION SELECT id2 FROM Example WHERE id1 = '1'";
ds = new DataSet(str);
da = new SqlDataAdapter(str, con);
da.Fill(ds);
DataTable dtDetails = ds.Tables[0];
List<int> lst =
(from dr in dtDetails.AsEnumerable()
select Convert.ToInt32(dr["id1"])).ToList<int>();
foreach (int prime in lst) // Loop through List with foreach
{
str1 = " SELECT id2 FROM [Connections] where id2= '"+prime+"'";
SqlCommand cmd1 = new SqlCommand(str1, con);
cmd1.ExecuteNonQuery();
DataSet ds1 = new DataSet();
SqlDataAdapter da1 = new SqlDataAdapter(str1, con);
da1.Fill(ds1);
GridView1.DataSource = ds1;
GridView1.DataBind();
}
我的gridview没有显示任何内容
尝试这个!
从示例WHERE id2 IN中选择SELECT ID2(从[示例] WHERE ID2 ='1'中选择SELECT ID1从示例WHERE ID1 ='1'中选择联合ID2)
您可以做的是将IN用作选择的一部分。 因此,发送到SQL Server的select语句可能是:
SELECT * FROM [Connections]其中id1 IN(1、2、4、6)
在伪代码中,这将是:
字符串列表=“ 1、2、4、6”; 字符串str1 =“ SELECT * FROM [Connections] where id1 IN(” + list +“)”;
当然,在您的代码中,您将根据ID列表构造列表
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.