执行以下代码时,我收到错误
ExecuteReader:尚未初始化Connection属性。
[WebMethod]
public static bool GetCurrentToBin(string ToBin)
{
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["SqlConn"].ToString());
conn.Open();
CommandFunction CF = new CommandFunction();
SqlDataReader dr;
dr = CF.ExecuteReader("exec sp_P_WMS_Stock_Adj_Validation_Proc '" + ToBin + "'");
dr.Read();
if (dr.HasRows)
{
conn.Close();
return true;
}
return false;
}
答案 0 :(得分:2)
您可以像下面那样重构您的代码,我认为您会得到您想要的。问题是你没有在CommandFunction
对象的任何地方指定将要使用的sql连接。我不知道这个对象,但我认为这是问题所在。下面的解决方案使用类SqlCommand
。
using System.Configuration;
[WebMethod]
public static string GetCurrentToBin(string ToBin)
{
var connectionString = ConfigurationManager.ConnectionStrings["SqlConn"].ToString();
using(var conn = new SqlConnection(connectionString))
{
const string queryString = "exec sp_P_WMS_Stock_Adj_Validation_Proc @Bin";
var sqlCommand = new SqlCommand(queryString , conn);
sqlCommand.Parameters.AddWithValue("@Bin",ToBin);
conn.Open();
var reader = sqlCommand.ExecuteReader();
if(reader.Read() && !reader.IsDBNull(0))
{
return reader.GetString(0);
}
return null;
}
}
从上面的代码中你可以做两件事: