我正在开发一个 C# .NET Framework 4.0 库。
我有这个代码:
public static byte GetBatchStatus(string connString)
{
if (string.IsNullOrEmpty(connString))
throw new ArgumentNullException("connString");
byte status;
using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = GetBatchStatusValueSQL;
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
object o = cmd.ExecuteScalar();
// Throws an ArgumentNullException if o is null.
if (o == null)
throw new ArgumentNullException("o");
status = Convert.ToByte(o);
}
return status;
}
cmd.ExecuteScalar();
可以返回 null,但Convert.ToByte(o);
返回 0。
如果cmd.ExecuteScalar();
返回 null 它是一个错误,因为我要查找的值必须在数据库中。如果该值不在数据库中,则为错误。
你会在这里做什么?返回 null 还是抛出异常?