【发布时间】:2014-04-10 07:14:21
【问题描述】:
我想获取起点和终点之间的 ID,但我无法过滤查询。当我编写没有大于和小于运算符的命令时,它可以工作,但会搜索所有表。
我不知道如何解决这个问题。这是我的代码;请问你能帮帮我吗?
public async Task<int> TaskSearchSqlTweetIDText(string TweetText, string Query, int StartPoint, int EndPoint)
{
SqlConnection conn = new SqlConnection(Tools.ConnectionString);
SqlCommand comm = new SqlCommand("select ID from Tweets where @VsTweetText=TweetText and ID<@VsEndPoint and ID>@VsStartPoint", conn);
comm.Parameters.AddWithValue("@VsTweetText", TweetText);
comm.Parameters.Add("@VsStartPoint", SqlDbType.Int);
comm.Parameters["@VsStartPoint"].Value = StartPoint;
comm.Parameters.Add("@VsEndPoint", SqlDbType.Int);
comm.Parameters["@VsEndPoint"].Value = EndPoint;
if (conn.State == ConnectionState.Closed) conn.Open();
object sonuc = await comm.ExecuteScalarAsync();
conn.Close();
if (sonuc != null)
{
return (int)sonuc;
}
else
{
return 0;
}
}
【问题讨论】:
-
当您在 SSMS 中尝试相同的查询时,您会得到什么 - 多少条目?
select ID from Tweets where @VsTweetText=TweetText and ID<@VsEndPoint and ID>@VsStartPoint -
请注意(这也在我的回答中):您的查询还过滤了
TweetText,因此您的要求我想获取起点和终点之间的ID不完整.它应该是我想在TweetText匹配给定值的起点和终点之间获取ID。
标签: c# sql ado.net logical-operators