我想在Startpoint和EndPoint之间获取ID,但无法过滤query.When编写命令时没有那么大,那么运算符就可以工作,但会搜索所有表。为什么SQL逻辑运算符在c#命令中不起作用?
我找不出如何解决这个问题。这是我的代码;请你能帮助我吗?
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中尝试相同的查询时,您会得到什么 - 有多少条目? '从推文中选择ID @VsTweetText = TweetText和ID <@VsEndPoint和ID> @ VsStartPoint' – Nayan
请注意(这也在我的答案中):您的查询也为'TweetText'过滤,所以您的要求*我想在Startpoint和EndPoint *之间获取ID不完整。它应该读取*我想在TweetText与给定值*匹配的Startpoint和EndPoint之间获取ID。 –