我想在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。 –