sys*_*out 4 c# stored-procedures
查看我继承的一些源代码,有一段代码调用SQL存储过程进行更新.
如果出现问题,存储过程返回-1:
IF @@Error <> 0
BEGIN
ROLLBACK TRAN
SELECT -1
RETURN
END
COMMIT TRAN
SELECT 0
Run Code Online (Sandbox Code Playgroud)
C#代码是这样的:
System.Data.SqlClient.SqlDataReader myReader;
try{
SqlDbConnection.Open();
SqlDbCommand.Connection = SqlDbConnection;
SqlDbCommand.CommandType = System.Data.CommandType.StoredProcedure;
SqlDbCommand.CommandText = "StoredProcedured_UpdateFoo";
SqlDbCommand.Parameters.Clear();
SqlDbCommand.Parameters.Add("@FooData", SqlDbType.DateTime); SqlDbCommand.Parameters["@FooData"].Value = System.DateTime.Now.ToString("yyyy-MM-dd");
myReader = SqlDbCommand.ExecuteReader();
if (myReader.Read())
{
if (int.Parse(myReader.GetValue(0).ToString()) == -1) throw new ErrorDataTxRx("Error FOO ");
}
} finally {
if (SqlDbConnection.State != ConnectionState.Closed){
SqlDbConnection.Close();
}
if (myReader != null){
if (!myReader.IsClosed) myReader.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
我也看到了相同代码的一部分,使用带有Fill方法的System.Data.DataSet()检查相同的东西.
有没有更优雅的方法来检查返回值是否为-1?
在这种情况下使用ExecuteReader是否可以?
| 归档时间: |
|
| 查看次数: |
347 次 |
| 最近记录: |