语句如下:string sqlstr = "select max(idint) from zz";
SqlCommand com = new SqlCommand(sqlstr, sqlcon);
int id = com.ExecuteNonQuery();
数据表记录如下:
第1个回答 2012-02-21
从代码看,按道理应该是返回值为1,你这个是取得受影响行数
int id = com.ExecuteNonQuery();
应该换成int id = Convter.ToInt32(com.ExcuteScalar());
如果返回值为-1的话,应该不是这些代码里面导致的,可能是因为其他你没贴出来的代码。
int id = com.ExecuteNonQuery();
应该换成int id = Convter.ToInt32(com.ExcuteScalar());
如果返回值为-1的话,应该不是这些代码里面导致的,可能是因为其他你没贴出来的代码。
第2个回答 2012-02-21
你那个是不返回影响行
改为返回首行首列
即
把 int id = com.ExecuteNonQuery();
改为 int id=com.ExcuteScalar();本回答被提问者采纳
改为返回首行首列
即
把 int id = com.ExecuteNonQuery();
改为 int id=com.ExcuteScalar();本回答被提问者采纳
第3个回答 2012-02-22
使用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());
}
}
部分代码.
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());
}
}
第4个回答 2012-02-21
将你的 这段sql 到数据库里面去执行,看一下报错和结果。
第5个回答 2012-02-21
不是吧