ExecuteNonQuery:连接 属性 尚未初始化。 sql参数数组
ExecuteNonQuery: Connection property has not been initialized. Sqlparameter array
我需要帮助.. 请告诉我我在这段代码中做错了什么,我在将参数数组传递给命令时搞砸了。
我的存储过程是正确的,连接字符串也是正确的..
internal string addmember(string name, string dob, string city, string state, string mobile, string email, string pass)
{
List<SqlParameter> param = new List<SqlParameter>();
param.Add(new SqlParameter("@Mname",Convert.ToString(name)));
param.Add(new SqlParameter("@Mdob",Convert.ToString(dob)));
param.Add(new SqlParameter("@MemailId",Convert.ToString(email)));
param.Add(new SqlParameter("@Mpassword", Convert.ToString(email)));
param.Add(new SqlParameter("@McontactNo", Convert.ToString(mobile)));
param.Add(new SqlParameter("@Mcity", Convert.ToString(city)));
param.Add(new SqlParameter("@Mstate", Convert.ToString(state)));
string result = Convert.ToString(executescaler(con, CommandType.StoredProcedure, "add_members", param.ToArray()));
return result;
}
private string executescaler(string con, CommandType commandTyp, string procedure, SqlParameter[] sqlParameter)
{
string res;
using (SqlConnection connection = new SqlConnection(con))
{
connection.Open();
SqlCommand cmd = new SqlCommand(procedure, connection);
cmd.CommandType = commandTyp;
cmd.CommandText = procedure;
cmd.Parameters.AddRange(sqlParameter);
res= cmd.ExecuteNonQuery().ToString();
}
return res;
}
通常我使用 sqlhelper,所以永远不需要费心费力..但现在我正因此而受苦..我不知道如何将 sqlparameter 数组传递给命令
您没有告诉您的 SqlCommand
它应该与您的 SqlConnetion
一起使用。
此外,SqlCommand
实现了 IDisposable
接口,因此您应该在 using
语句中使用它:
private string executescaler(string con, CommandType commandTyp, string procedure, SqlParameter[] sqlParameter)
{
string res;
using (var connection = new SqlConnection(con))
{
using(var cmd = new SqlCommand(procedure, con))
{
cmd.CommandType = commandTyp;
cmd.Parameters.AddRange(sqlParameter);
connection.Open();
res = cmd.ExecuteNonQuery().ToString();
}
}
return res;
}
我需要帮助.. 请告诉我我在这段代码中做错了什么,我在将参数数组传递给命令时搞砸了。 我的存储过程是正确的,连接字符串也是正确的..
internal string addmember(string name, string dob, string city, string state, string mobile, string email, string pass)
{
List<SqlParameter> param = new List<SqlParameter>();
param.Add(new SqlParameter("@Mname",Convert.ToString(name)));
param.Add(new SqlParameter("@Mdob",Convert.ToString(dob)));
param.Add(new SqlParameter("@MemailId",Convert.ToString(email)));
param.Add(new SqlParameter("@Mpassword", Convert.ToString(email)));
param.Add(new SqlParameter("@McontactNo", Convert.ToString(mobile)));
param.Add(new SqlParameter("@Mcity", Convert.ToString(city)));
param.Add(new SqlParameter("@Mstate", Convert.ToString(state)));
string result = Convert.ToString(executescaler(con, CommandType.StoredProcedure, "add_members", param.ToArray()));
return result;
}
private string executescaler(string con, CommandType commandTyp, string procedure, SqlParameter[] sqlParameter)
{
string res;
using (SqlConnection connection = new SqlConnection(con))
{
connection.Open();
SqlCommand cmd = new SqlCommand(procedure, connection);
cmd.CommandType = commandTyp;
cmd.CommandText = procedure;
cmd.Parameters.AddRange(sqlParameter);
res= cmd.ExecuteNonQuery().ToString();
}
return res;
}
通常我使用 sqlhelper,所以永远不需要费心费力..但现在我正因此而受苦..我不知道如何将 sqlparameter 数组传递给命令
您没有告诉您的 SqlCommand
它应该与您的 SqlConnetion
一起使用。
此外,SqlCommand
实现了 IDisposable
接口,因此您应该在 using
语句中使用它:
private string executescaler(string con, CommandType commandTyp, string procedure, SqlParameter[] sqlParameter)
{
string res;
using (var connection = new SqlConnection(con))
{
using(var cmd = new SqlCommand(procedure, con))
{
cmd.CommandType = commandTyp;
cmd.Parameters.AddRange(sqlParameter);
connection.Open();
res = cmd.ExecuteNonQuery().ToString();
}
}
return res;
}