另一个 SqlParameterCollection 中已包含 SqlParameter
如标题,附代码如下:
public void AddNews(Content content)
{
SqlParameter[] parameters = new SqlParameter[7];
SqlParameter parameter = new SqlParameter();
parameter = new SqlParameter();
parameter.ParameterName = "@title ";
parameter.Value = content.Title;
parameters[0] = parameter;
parameter = new SqlParameter();
parameter.ParameterName = "@content ";
parameter.Value = content.ParticularCont;
parameters[1] = parameter;
parameter = new SqlParameter();
parameter.ParameterName = "@time ";
parameter.Value = content.PublishTime;
parameters[2] = parameter;
tool.ExecuteStoreProcedure( "AddNews ", parameters);
}
public void ExecuteStoreProcedure(string spName, SqlParameter[] parameters)
{
try
{
SqlCommand cmd = new SqlCommand(spName);
cmd.CommandType = CommandType.StoredProcedure;
if (parameters != null)
for (int i = 0; i < parameters.Length; i++)
{
cmd.Parameters.Add(parameters[i]);
}
cmd.Connection = this.sqlCon;
if (this.sqlCon.State == ConnectionState.Closed) this.sqlCon.Open();
cmd.ExecuteNonQuery();
this.sqlCon.Close();
}
catch (Exception ee)
{
if (this.sqlCon.State == ConnectionState.Open) this.sqlCon.Close();
string errorString = "Tool::ExecuteStoreProcedure() ------> " + ee.Message.ToString();
this.ProcessError(errorString);
}
finally
{
if (this.sqlCon.State == ConnectionState.Closed)
this.sqlCon.Close();
}
}
请大家帮帮忙,谢谢了。
[解决办法]
SqlParameter[] paraList = new SqlParameter[7];
paraList[0] = new SqlParameter( "@userName ", SqlDbType.VarChar, 50);
paraList[0].Value = personModel.UserName;
paraList[1] = new SqlParameter( "@account ", SqlDbType.VarChar, 100);
paraList[1].Value = personModel.Account;
paraList[2] = new SqlParameter( "@pwd ", SqlDbType.VarChar, 100);
paraList[2].Value = personModel.Pwd;
paraList[3] = new SqlParameter( "@unitID ", SqlDbType.VarChar, 20);
paraList[3].Value = personModel.UnitID;
paraList[4] = new SqlParameter( "@email ", SqlDbType.VarChar, 100);
paraList[4].Value = personModel.Email;
paraList[5] = new SqlParameter( "@officeTel ", SqlDbType.VarChar, 20);
paraList[5].Value = personModel.OfficeTel;
paraList[6] = new SqlParameter( "@mobile ", SqlDbType.VarChar, 20);
paraList[6].Value = personModel.Mobile;
return sd.ExecuteNonQuery( "UP_Person_ADD ", paraList);
[解决办法]
for (int i = 0; i < parameters.Length; i++)
{
cmd.Parameters.Add(parameters[i]);
}
问题出在这里,你试试看不先设置好parameters,而在每次add时new一个parameter进去。
[解决办法]
public void AddNews(Content content)
{
SqlParameter[] parameters = new SqlParameter[7];
par[0] = new SqlParameter( "@title ",content.Title);
par[1] = .......
tool.ExecuteStoreProcedure( "AddNews ", parameters);
}
建议看下Sqlhelper.cs