我有代码从存储过程中获取数据表。出于某种原因,它永远无法从SQL Server获取数据。
var conSTR = ConfigurationManager.ConnectionStrings["SRKBS-PB"].ConnectionString;
using(conDB = new SqlConnection(conSTR))
{
cmd = new SqlCommand();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "sp_GetDeity";
conDB.Open();
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
return dt;
}
在调试期间,condb
包含数据,但dt
为空。我已经检查过SQL Server端,一切都很好。请帮忙。致谢
答案 0 :(得分:3)
您已创建新连接,但从未打开它。 ExecuteReader需要一个开放且可用的连接。
string constring = System.Configuration.ConfigurationManager.ConnectionStrings["SRKBS-PB"].ConnectionString;
using(conDB = new SqlConnection(constring))
using(cmd = new SqlCommand("sp_GetDeity", conDB))
{
conDB.Open(); // open the connection
cmd.CommandType = System.Data.CommandType.StoredProcedure;
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
return dt;
}