对应的表中的记录要设置其ID字段的Identity 属性为Yes. 假设表 table1 (id, name), 其中id为Identity字段。string strSql = "Insert Into table1 (name) values ('spring'); select @@identity;";SqlConnection conn = new SqlConnection("connection string"); SqlCommand cmd = new SqlCommand(strSql, conn);conn.Open(); int id = (int)cmd.ExecuteScalar(); //返回的新记录的值conn.close();
上面程序我感觉不是记录号, 可以如下Insert Into table1 (name) values ('windyyang'); Select count(*) from table1;SqlConnection conn = new SqlConnection("connection string"); SqlCommand cmd = new SqlCommand(strSql, conn);conn.Open(); int id = (int)cmd.ExecuteScalar(); //返回的新记录的记录号conn.close();
写错! 上面程序我感觉不是记录号, 可以如下 string strSql = "Insert Into table1 (name) values ('windyyang'); Select count(*) from table1;"SqlConnection conn = new SqlConnection("connection string"); SqlCommand cmd = new SqlCommand(strSql, conn);conn.Open(); int id = (int)cmd.ExecuteScalar(); //返回的新记录的记录号conn.close();
using(SqlCommand cmd=new SqlCommand( @" INSERT..... SELECT SCOPE_IDENTITY() AS ID ",conn))//SCOPE_IDENTITY()避免并发和触发器所作成的错误。 { id=Convert.ToInt32(cmd.ExecuteScalar());//如果返回Decimal的话,用(int)cmd.ExecuteScalar就会出错.. }
int id = (int)cmd.ExecuteScalar(); //返回的新记录的值 不行。 id=Convert.ToInt32(cmd.ExecuteScalar());//如果返回Decimal的话,用(int) 可以! 谢谢各位!
假设表 table1 (id, name), 其中id为Identity字段。string strSql = "Insert Into table1 (name) values ('spring'); select @@identity;";SqlConnection conn = new SqlConnection("connection string");
SqlCommand cmd = new SqlCommand(strSql, conn);conn.Open();
int id = (int)cmd.ExecuteScalar(); //返回的新记录的值conn.close();
可以如下Insert Into table1 (name) values ('windyyang'); Select count(*) from table1;SqlConnection conn = new SqlConnection("connection string");
SqlCommand cmd = new SqlCommand(strSql, conn);conn.Open();
int id = (int)cmd.ExecuteScalar(); //返回的新记录的记录号conn.close();
上面程序我感觉不是记录号,
可以如下
string strSql = "Insert Into table1 (name) values ('windyyang'); Select count(*) from table1;"SqlConnection conn = new SqlConnection("connection string");
SqlCommand cmd = new SqlCommand(strSql, conn);conn.Open();
int id = (int)cmd.ExecuteScalar(); //返回的新记录的记录号conn.close();
@"
INSERT.....
SELECT SCOPE_IDENTITY() AS ID
",conn))//SCOPE_IDENTITY()避免并发和触发器所作成的错误。
{
id=Convert.ToInt32(cmd.ExecuteScalar());//如果返回Decimal的话,用(int)cmd.ExecuteScalar就会出错..
}
不行。
id=Convert.ToInt32(cmd.ExecuteScalar());//如果返回Decimal的话,用(int)
可以!
谢谢各位!