语言C#,winform,数据库为access. 如何把int数组作为sql语句中的查询条件?
PostIds[num]中记录了多个岗位编码,希望以数组PostIds中的值作为查询条件,查询岗位所对应的不重复的部门编号。部门与岗位是一对多的关系,岗位表中包含部门编码...
PostIds[num]中记录了多个岗位编码,希望以数组PostIds中的值作为查询条件,查询岗位所对应的不重复的部门编号。部门与岗位是一对多的关系,岗位表中包含部门编码
。希望能成功达到如下sql语句中的查询效果:String sql=@" select distinct DepartmentId from POSITION where PostId in("+PostIds+")"; 展开
。希望能成功达到如下sql语句中的查询效果:String sql=@" select distinct DepartmentId from POSITION where PostId in("+PostIds+")"; 展开
4个回答
展开全部
你要写一个循环语句,把数组中的值用逗号隔开,拼成一个字符串,就像这样:“1111,2222,3333……”,然后放到括号里,代替现在sql语句中的postid变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string ids="";
for(int i=0;i<PostIds.Length;i++)
{
ids+=PostIds[i];
if(i<PostIds.Length-1)
{
ids+=",";
}
}
String sql=@" select distinct DepartmentId from POSITION where PostId in("+ids+")";
for(int i=0;i<PostIds.Length;i++)
{
ids+=PostIds[i];
if(i<PostIds.Length-1)
{
ids+=",";
}
}
String sql=@" select distinct DepartmentId from POSITION where PostId in("+ids+")";
追问
真的可以哦,之前在网上也查到了这样的做法,但一直认为ids属于字符串,而PostId字段属于int型,会出现类型不匹配。没想到真可以,是因为数据库在接受in(值1,值2,…)条件时本来就是以字符串的形式接受,再根据值1类型执行相关操作的嘛?
追答
数字在sql中加引号就作为字符串,不加引号就作为number类型,
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String sql=" select distinct from POSITION where PostId =("+PostIds+")";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
怎么了?有啥问题...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询