我需要帮助..请告诉我在这段代码中我做了什么错,我在传递参数数组到命令时搞砸了。 我的商店程序是正确的,连接字符串也是正确的..
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所以永远不需要经历深入的ado ..但是现在我因此而受苦.. 我没有得到如何将sqlparameter数组传递给命令
答案 0 :(得分:4)
您没有告诉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;
}