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