Joh*_*aka 1 c# t-sql stored-procedures executescalar sql-server-2014
我有一个存储过程,根据某些结果返回0或1.我经常手动执行这个程序,所以为了描述在SSMS中容易查看但在代码中仍然可读为0/1的成功/失败的描述,我选择0或1作为不同的列名,即SELECT 0 AS ThisReason或SELECT 0 AS ThatReason.
几乎可以肯定有更好的方法来解决这个问题,但它让我很好奇 - 在C#中使用ExecuteScalar时,是否可以读取你选择的列的名称?
没有,ExecuteScalar但有ExecuteReader和SqlDataReader.GetName:
using (var con = new SqlConnection("connection-string"))
using (var cmd = new SqlCommand("storedprocedurename", con))
{
cmd.CommandType = CommandType.StoredProcedure;
// parameters here...
con.Open();
using (var rd = cmd.ExecuteReader())
{
if (rd.Read())
{
string column = rd.GetName(0); // first column
int value = rd.GetInt16(0); // or rd.GetInt32(0)
}
}
}
Run Code Online (Sandbox Code Playgroud)