怎么解决ExecuteNonQuery()至少一个参数没有被指定值。

Cisher 2010-09-28 06:43:43
用asp.net写了个web程序,需要对数据库进行更新(Update),但是老出这个错误,
更新代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
string str_id="" + Request.QueryString["id"];
string str_nami =this. NewNameInput.Text;
string str_jinsi = this.JinsiInput.Text;
string str_mezmuni = this.MeaningInput.Text;
string str_tili = this.LangInput.Text;
string str_pigchisi = this.CnNameInput.Text;
string str_aptori = this.ByNameInput.Text;
string con_str = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(".") + "//App_Data//NameDB.mdb";
OleDbConnection base_con = new OleDbConnection(con_str);
base_con.Open();
string cmd_str = "update [T_NamesInfo] set E_Name='" + str_nami + "',E_Sex='" + str_jinsi + "',E_Meaning='" + str_mezmuni + "',E_Lang='" + str_tili + "',E_CnName='" + str_pigchisi + "',E_By='" + str_aptori + "' where id=" + str_id;
OleDbCommand odbcmd = new OleDbCommand(cmd_str, base_con);
if (odbcmd.ExecuteNonQuery() > 0)
{
base_con.Close();
Response.Write("<script>alert('update finish!')</script>");
}
else
{
base_con.Close();
Response.Write("<script>alert('faild!!')</script>");
}


}


错误截图如下

...全文
561 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cisher 2010-09-28
  • 打赏
  • 举报
回复
都解决了。。。谢谢各位i
Cisher 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wuyq11 的回复:]

<add name="accessConnStr" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source= |DataDirectory|a.mdb" providerName="System.Data.OleDb"/>
OleDbConnection connection = new OleDbConnectio……
[/Quote]

断点法看了
cmd_str=update [T_NamesInfo] set E_Sex = '男' where [id]=1
正常吧...
Cisher 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 winner2050 的回复:]

写错字段名称没有?

一个个字段缩小,用排除法。
[/Quote]
都试了..
winner2050 2010-09-28
  • 打赏
  • 举报
回复
写错字段名称没有?

一个个字段缩小,用排除法。
wuyq11 2010-09-28
  • 打赏
  • 举报
回复
<add name="accessConnStr" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source= |DataDirectory|a.mdb" providerName="System.Data.OleDb"/>
OleDbConnection connection = new OleDbConnection(connectionString);
检查参数类型。cmd_str 值
Cisher 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hu6901582 的回复:]

强制转换数据类型
[/Quote]
怎么转换啊 ???
hu6901582 2010-09-28
  • 打赏
  • 举报
回复
强制转换数据类型
Cisher 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 begintransaction 的回复:]

报的啥错呀。
[/Quote]

没有报错,可以正常运行网站的,但是在网站页面做更新(Update)操作就不同了,出现的是上面的那张图所显示.
begintransaction 2010-09-28
  • 打赏
  • 举报
回复
报的啥错呀。
Cisher 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyq11 的回复:]

where [id]
[/Quote]
试了,没用了...
Cisher 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yj5723187 的回复:]

看看你的那些字段哪些不允许为空.。 你调试的时候把鼠标移到 string cmd_str上面将SQL拿出来到数据库里面去执行一遍... 应该是某字段为空或着,int型打了单引号,或者是该打单引号的地方你没打.。 比如你这里的str_id是string型...
[/Quote]
更新字段都允许为空的,我用断点法都看了,都不是空的。
那个打单引号双引号的你看看,我哪儿打错了?
wuyq11 2010-09-28
  • 打赏
  • 举报
回复
where [id]
yj5723187 2010-09-28
  • 打赏
  • 举报
回复
看看你的那些字段哪些不允许为空.。 你调试的时候把鼠标移到 string cmd_str上面将SQL拿出来到数据库里面去执行一遍... 应该是某字段为空或着,int型打了单引号,或者是该打单引号的地方你没打.。 比如你这里的str_id是string型...
Cisher 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]

string cmd_str = "update [T_NamesInfo] set E_Name='" + str_nami + "',E_Sex='" + str_jinsi + "',E_Meaning='" + str_mezmuni + "',E_Lang='" + str_tili + "',E_CnName='" + str_pigchisi + "',E_By='" + st……
[/Quote]
你可以说具体点么???
wuyq11 2010-09-28
  • 打赏
  • 举报
回复
string cmd_str = "update [T_NamesInfo] set E_Name='" + str_nami + "',E_Sex='" + str_jinsi + "',E_Meaning='" + str_mezmuni + "',E_Lang='" + str_tili + "',E_CnName='" + str_pigchisi + "',E_By='" + str_aptori + "' where [id]=" + str_id;
string.format
oledbparameter操作

62,271

社区成员

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

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

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

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