帮忙看一段简单的代码,哪有错误,谢过了~~~

jerome521 2006-11-15 10:05:55
public bool TimeDiffAddOrEdit(string InterZh,string InterEn,string CountryZh,string CountryEn,string CityZh,string CityEn,string TimeSign,string TimeDiffHour,string TimeDiffMin)
{

string sql="UPDATE [CmdTimeDiff] SET [InterZh]=@InterZh,[CountryZh]=@CountryZh,[CityZh]=@CityZh WHERE [InterEn]='"+InterEn+"' AND [CountryEn]='"+CountryEn+"' AND [CityEn]='"+CityEn+"'";
//(我把where的条件都限制死了)
OleDbCommand olecmd=new OleDbCommand(sql,conn);

olecmd.Parameters.Add(new OleDbParameter ("@InterZh",OleDbType.VarChar,50));
olecmd.Parameters["@InterZh"].Value=InterZh;

olecmd.Parameters.Add(new OleDbParameter ("@InterEn",OleDbType.VarChar,50));
olecmd.Parameters["@InterEn"].Value=InterEn;

olecmd.Parameters.Add(new OleDbParameter ("@CountryZh",OleDbType.VarChar,50));
olecmd.Parameters["@CountryZh"].Value=CountryZh;

olecmd.Parameters.Add(new OleDbParameter ("@CountryEn",OleDbType.VarChar,50));
olecmd.Parameters["@CountryEn"].Value=CountryEn;

olecmd.Parameters.Add(new OleDbParameter ("@CityZh",OleDbType.VarChar,50));
olecmd.Parameters["@CityZh"].Value=CityZh;

olecmd.Parameters.Add(new OleDbParameter ("@CityEn",OleDbType.VarChar,50));
olecmd.Parameters["@CityEn"].Value=CityEn;

olecmd.Parameters.Add(new OleDbParameter ("@TimeSign",OleDbType.VarChar,2));
olecmd.Parameters["@TimeSign"].Value=TimeSign;

olecmd.Parameters.Add(new OleDbParameter ("@TimeDiffHour",OleDbType.Integer));
olecmd.Parameters["@TimeDiffHour"].Value=TimeDiffHour;

olecmd.Parameters.Add(new OleDbParameter ("@TimeDiffMin",OleDbType.Integer));
olecmd.Parameters["@TimeDiffMin"].Value=TimeDiffMin;

olecmd.Connection.Open();
try
{
olecmd.ExecuteNonQuery();
olecmd.Connection.Close();
return true;
}
catch(Exception ex)
{
olecmd.Connection.Close();
throw new Exception(ex.Message);
}
}

原数据
ASIA 亚洲 Japan 日本 Dongjing 东京
执行后数据
ASIA 亚洲new Japan ASIA Dongjing 日本new

结果都完全错位了~~~

我观察了几遍,觉得Access和C#的用OleDbCommand写入或修改数据,@变量是有顺序的~~~~也就是SQL语句@出现顺序要和olecmd.Parameters[]的顺序一致~~~~~
...全文
83 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangzengping 2006-11-15
  • 打赏
  • 举报
回复
没发现那里错了! 继续顶!
vzxq 2006-11-15
  • 打赏
  • 举报
回复
你跟踪一下
Response.Write(sql);
sean840610 2006-11-15
  • 打赏
  • 举报
回复
没用过CMD的参数。。一直是用拼SQL语句的方法。。。。。帮顶下吧

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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