另一个 SqlParameterCollection 中已包含 SqlParameter

yjwang0621 2007-09-28 01:54:10
如标题,附代码如下:
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();
}
}
请大家帮帮忙,谢谢了。
...全文
1180 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjwang0621 2007-09-29
  • 打赏
  • 举报
回复
^_^
yjwang0621 2007-09-29
  • 打赏
  • 举报
回复
T0: flybird_13 谢谢你的建议
flybird_13 2007-09-28
  • 打赏
  • 举报
回复
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
yjwang0621 2007-09-28
  • 打赏
  • 举报
回复
To: yeness 7个没错,我把那4个省略了 :)

To: visual_czw 用了你的方法,可以了。但是我其他的几个方法和我出问题的这个方法一样,就是参数不一样,为什么它们可以,而这个方法不行?其他几个方法的参数只有2,3个。

T0: bhujm 能不能详细一点,怎么拷贝一个副本并add进去。

谢谢以上3位朋友,刚接触.net,见谅了.
bhujm 2007-09-28
  • 打赏
  • 举报
回复
也就是说不能把那个parm数组直接add进去,得拷贝一个副本传进去。
bhujm 2007-09-28
  • 打赏
  • 举报
回复
for (int i = 0; i < parameters.Length; i++)
{
cmd.Parameters.Add(parameters[i]);
}

问题出在这里,你试试看不先设置好parameters,而在每次add时new一个parameter进去。
visual_czw 2007-09-28
  • 打赏
  • 举报
回复
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);
xuan.ye 2007-09-28
  • 打赏
  • 举报
回复
SqlParameter[] parameters = new SqlParameter[7];
这个数组是7,你下面采用了3个?
yjwang0621 2007-09-28
  • 打赏
  • 举报
回复
在线等解决方法

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧