最近遇到一个问题,比较奇怪,把数据插入到数据库,返回插入行的主键值,
但是不同的执行方法返回的值不同,具体看图:
第一种方法是拼接SQL语句执行,正常执行,返回的值不为null
第二种是参数格式化,正常执行,数据库插入数据成功,返回的值为null;
两种方法对下面的代码带来不同的效果
SqlDataAdapter _sda = new SqlDataAdapter("select cast (SCOPE_IDENTITY() as int) as 'operation_id' ", conn); //'tableAID' 为主键
DataSet dsOperationID = new DataSet();
_sda.Fill(dsOperationID);
int operation_id = 0;//这个是就是我们要得到的返回的主键ID
if (dsOperationID != null && dsOperationID.Tables.Count > 0
&& dsOperationID.Tables[0].Rows.Count > 0)
{
operation_id = (int)(dsOperationID.Tables[0].Rows[0]["operation_id"]);
}
没能理解这2种方法的影响原理??大神有知道的吗?