C# WPF SQL 多条件查询

数据库中有一张表A(id,a,b)在一个int型数组中存放了我需要查找的id,比如int[]num=[1,2,8,9],我想将这些ID作为我查询的条件,通过C#给数据库,... 数据库中有一张表A(id,a,b)在一个int型数组中存放了我需要查找的id,比如int[] num = [1,2,8,9],我想将这些ID作为我查询的条件,通过C# 给数据库,查询的结果用datagrid显示,也就是说,查询结果应该放在一个datatable里,请问应该怎样做,求指点~ 展开
 我来答
哲事姓无
2013-08-09 · TA获得超过1177个赞
知道小有建树答主
回答量:903
采纳率:100%
帮助的人:463万
展开全部
// 试一下能不能满足你的要求。
        var num = new[] {1, 2, 8, 9};
        // .net 4或以上
//        var sql = string.Format("select id, a, b from A where id in ( {0} )", string.Join(", ", num));
        // .net 4以下 
        var numStr = Array.ConvertAll(num, input => input.ToString());
        var sql = string.Format("select id, a, b from A where id in ( {0} )", string.Join(", ", numStr));



        var dataTable = new DataTable();

        using (var dataAdapter = new SqlDataAdapter(sql, connectoin))
        {
            dataAdapter.Update(dataTable);
        }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2013-08-09 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:8174万
展开全部
            int[] num = new int[] { 1, 2, 8, };
            string sql = string.Format("select * from A where 1<>1 ");
            foreach (int i in num)
            {
                sql += string.Format(" or id = {0} ", i);
            }
            MessageBox.Show(sql);
            //有了sql语句的再用adapter.fill(datatable)
追问
能不能麻烦你解释一下where处的11是什么意思呢,谢谢~
追答
方便我加第一个or。你去掉11 再弹出就知道是什么效果了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一尺金子
2013-08-09
知道答主
回答量:9
采纳率:0%
帮助的人:1.3万
展开全部
亲,我大概说一下:把int[]的值转化成字符串
int[] num={1,2,3};
string Instr = "";
for(int i=0;i<num.Length;i++)
{
Instr = Instr + "," + num[i].ToString();
}
SQL语句这样写:Select * from a where id in(Instr)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4b0a952ea7
2013-08-09 · TA获得超过131个赞
知道答主
回答量:198
采纳率:0%
帮助的人:93万
展开全部
拼接sql的where 条件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式