一个sql语句的问题,不明白什么原因,

这个是页面后台中的一段代码:stringsql="selectsum(shjdefen)fromtb_kaoshilistwhereshjmbId='"+id+"'";i... 这个是页面后台中的一段代码:
string sql = "select sum(shjdefen) from tb_kaoshilist where shjmbId='" + id + "'";
int sum = da.select_sum(Server, sql);

public int select_sum(HttpServerUtility Server, string sql)
{
int sum = 0;
try
{
OleDbConnection conn = new OleDbConnection(DataBasePath(Server));
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
sum = Convert.ToInt32(cmd.ExecuteScalar());
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return sum;
}
我用断点一步的走,没什么问题:
如果不用断点,在数据库上运行sql语句是对的,但是查出来赋值的时候是错值,很郁闷!用access数据库。
我的sql语句在数据库查询里可以查出来,shjmbId是字符串类型,下一步就是获取值和赋值了,不会有错。
不用断点调试的话,我发现它少加了最后一个数!比如有十个数,它就加前面的九个,最后一个不要了,该怎么解决呢?
int sum = 0;
string sql = "select SUM(shjdefen) as shj from tb_kaoshilist where shjmbId='" + id + "'";
OleDbConnection conn = new OleDbConnection(da.DataBasePath(Server));
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
object count = cmd.ExecuteScalar();
if (count != System.DBNull.Value)
{
sum = Convert.ToInt32(count);
}
设断点和不设断点传过来的值不一样!!!

唉,还是没解决,为什么sum()会在这少算一个数据呢,再别的页面都可以!!
展开
 我来答
wantairl
2010-06-04 · TA获得超过157个赞
知道答主
回答量:484
采纳率:100%
帮助的人:220万
展开全部
看LZ的意思好像是ID前后还有空格?
用trim()函数直接去空格看看能行否?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式