sql语句 取字段最大值 结果总为-1 求助 是不是数据库有问题啊?

语句如下:stringsqlstr="selectmax(idint)fromzz";SqlCommandcom=newSqlCommand(sqlstr,sqlcon)... 语句如下:string sqlstr = "select max(idint) from zz";
SqlCommand com = new SqlCommand(sqlstr, sqlcon);
int id = com.ExecuteNonQuery();
数据表记录如下:
展开
 我来答
ghotos
2012-02-21 · TA获得超过280个赞
知道小有建树答主
回答量:435
采纳率:0%
帮助的人:365万
展开全部
从代码看,按道理应该是返回值为1,你这个是取得受影响行数
int id = com.ExecuteNonQuery();
应该换成int id = Convter.ToInt32(com.ExcuteScalar());

如果返回值为-1的话,应该不是这些代码里面导致的,可能是因为其他你没贴出来的代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-02-21
展开全部
你那个是不返回影响行
改为返回首行首列

把 int id = com.ExecuteNonQuery();
改为 int id=com.ExcuteScalar();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
石哥在拌饭
2012-02-22 · TA获得超过530个赞
知道小有建树答主
回答量:573
采纳率:100%
帮助的人:569万
展开全部
使用ExecuteScalar()执行SQL语句,返回第一行第一列,ExecuteScalar()一般执行聚合查询。

部分代码.
string sqlstr = "select max(idint) from zz";
using (SqlConnection conn = new SqlConnection(sqlConn)
{
using(SqlCommand cmd = new SqlCommand(sqlstr, conn))
{
conn.Open();
int id = Convert.ToInt32(cmd.ExecuteScalar());
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友64f5997
2012-02-21 · 贡献了超过101个回答
知道答主
回答量:101
采纳率:0%
帮助的人:25.1万
展开全部
将你的 这段sql 到数据库里面去执行,看一下报错和结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友71c4801
2012-02-21
知道答主
回答量:41
采纳率:100%
帮助的人:16.8万
展开全部
不是吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式