关于v2.5版本中select语句中使用in的问题

0 views
Skip to first unread message

sw00...@gmail.com

unread,
Dec 11, 2006, 9:57:53 PM12/11/06
to NBear Google Group
public User_Topic[] selectUserTopicByIDStr(string useridStr)
{
return Gateway.Default.Select<User_Topic>("[BBSID] in
(@blist)", "[CreateDate] desc", new object[] { useridStr });
}

目前的问题是参数useridStr的值本身是一个构造好的,用","分隔的字符串,放在
new object[] { useridStr
}里语法似乎有歧义了,不知道怎么解决

下面两种方式调式都是出错:

public User_Topic[] selectUserTopicByIDStr(string useridStr)
{
useridStr = "(" + useridStr + ")";
return Gateway.Default.Select<User_Topic>("[BBSID] in
@blist", "[CreateDate] desc", new object[] { useridStr });
}
提示in后一定要带括号


public User_Topic[] selectUserTopicByIDStr(string useridStr)
{
StringBuilder sb = new StringBuilder("@bID0", 500);
for (int i = 1; i < useridStr.Split(',').Length; i++)
{
sb.Append(",@bID" + i.ToString());
}
string blist = sb.ToString();
return Gateway.Default.Select<User_Topic>("[BBSID] in (" +
blist + ")", "[CreateDate] desc", new object[] { useridStr });
}
提示索引超出数组界限

Teddy

unread,
Dec 11, 2006, 10:23:32 PM12/11/06
to nbear...@googlegroups.com
你直接把useridStr的值合并到第一个参数,也就是sql中就好了,第二个参数new object[]那里传null。

sw00...@gmail.com

unread,
Dec 11, 2006, 10:37:12 PM12/11/06
to NBear Google Group
不明白你的意思,能能帮我就上面那个方法改一下吗

Teddy

unread,
Dec 11, 2006, 10:40:41 PM12/11/06
to nbear...@googlegroups.com
public User_Topic[] selectUserTopicByIDStr(string useridStr)
       {
           return Gateway.Default.Select<User_Topic>("[BBSID] in (" +
useridStr + ")", "[CreateDate] desc", null);
       }
 
如上!

 
On 12/12/06, sw00...@gmail.com <sw00...@gmail.com> wrote:
不明白你的意思,能能帮我就上面那个方法改一下吗

Reply all
Reply to author
Forward
0 new messages