一个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()会在这少算一个数据呢,再别的页面都可以!! 展开
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()会在这少算一个数据呢,再别的页面都可以!! 展开
6个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询