问题描述
我在使用OleDbCommand.ExecuteScalar()时遇到问题。
这是我的查询。
SELECT SUM(gobg.quan / d.coef) as quan
FROM ((N_GOODS_EXTCODES AS nge
INNER JOIN DRUGS AS d ON nge.ec_NZOK20190816 = d.DrugCode)
INNER JOIN N_GOODS AS ng ON nge.good_code = ng.code)
INNER JOIN G_OBGS AS gobg ON ng.smg_id = gobg.smg_id
WHERE nge.ec_NZOK20190816 = "AF063" AND gobg.part_num LIKE 'KR72K35*' ;
当我在MS ACCESS中执行它时,这是返回的值。
这是我的C#代码
public double getGoodQuan(string goodCode,string goodPart,string pharmNzokList)
{
double result = 0;
using (OleDbConnection con = new OleDbConnection(connectionStringBuffer))
{
try
{
con.Open();
using (OleDbCommand cmd = new OleDbCommand(Queries.getGoodQuan(goodCode,goodPart,pharmNzokList),con))
{
result = Convert.ToDouble(cmd.ExecuteScalar());
}
}
catch (Exception ex)
{
Program.ErrorLog(ex.Message,this.GetType().Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name);
}
finally
{
con.Close();
}
}
return result;
}
public static string getGoodQuan(string goodCode,string pharmNzokList)
{
string result = "SELECT SUM(gobg.quan / d.coef) " +
"FROM ((N_GOODS_EXTCODES AS nge " +
"INNER JOIN DRUGS AS d ON nge." + pharmNzokList + " = d.DrugCode) " +
"INNER JOIN N_GOODS AS ng ON nge.good_code = ng.code) " +
"INNER JOIN G_OBGS AS gobg ON ng.smg_id = gobg.smg_id " +
"WHERE nge." + pharmNzokList + " = \"" + goodCode + "\" " +
"AND gobg.part_num LIKE '" + goodPart + "*' " +
";";
return result;
}
cmd.ExecuteScalar()之后的结果为空。
我尝试使用字符串,双精度对象,对象,结果却完全一样。
在同一项目中,我使用相同的代码,但查询不同,并且可以正常工作。
这是有效的查询。
SELECT SYS_PHARMA.pharm_nzok_list FROM SYS_PHARMA;
这是MS ACCESS结果
我第一个离开的查询返回的错误是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)