COUNT(*)請看看下面的代碼:LIKE查詢總是返回0
using (OleDbConnection openCon = new OleDbConnection(ConfigurationManager.AppSettings["AccessConnectioString"]))
{
openCon.Open();
string tc = string.Empty;
string ttc = string.Empty;
if (!string.IsNullOrEmpty(QSetId))
{
tc = "select count(*) as [Count] from ABC where QSetId = @qSetId and TText like 'RT*'";
}
else
{
tc = "select count(*) as [Count] from PQR where TText like 'RT*'";
}
using (OleDbCommand qtc= new OleDbCommand(tc))
{
qtc.Connection = openCon;
if (!string.IsNullOrEmpty(QSetId))
qtc.Parameters.Add("@qSetId", OleDbType.VarChar).Value = QSetId;
OleDbDataReader dr1 = qtc.ExecuteReader();
while (dr1.Read())
{
ttCnt = (int)dr1["Count"];
}
}
openCon.Close();
}
我總是得到數爲0,而不是某個整數值。在調試時,我將查詢並在MS ACCESS 2013中執行,它給了我正確的結果。我沒有得到什麼問題。
您可能想先閱讀手冊。 http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbparameter(v=vs.110).aspx * OLE DB.NET框架數據提供程序使用標記爲問題的位置參數標記(?)而不是命名參數。*如果您從不使用它,設置「getTotalTweetCount」有什麼意義? 'OleDbDataReader'實現'IDisposable',但你永遠不會調用Dispose。等等。 –
@ ta.speot.is謝謝你的回覆,'AccessConnectioString'不是拼寫錯誤,'getTotalTweetCount'不存在,'tc'(我編輯過),@工作正常,它也被取代具有適當的價值。我不認爲@正在創造問題,因爲我在其他程序及其工作中使用相同的東西。 – user3030342