string upcmd="UPDATE operation SET cost1=@cost,server1=@server,find1=@find,system1=@system WHERE (code1=@code)";
try
{
this.oleDbConnection1.Open();
this.oleDbCommand1.CommandText=upcmd;
this.oleDbCommand1.ExecuteNonQuery();
this.oleDbConnection1.Close();
}
catch (Exception ex)
{
this.oleDbConnection1.Close();
MessageBox.Show("发生以下错误:"+ex.Message);
}前三行是一行.
SET 里并没有写表的全部字段,无法更新(ExecuteNonQuery返回0)!但也不抛出错误.
如果在SET后把表的全部字段全部写全,就能更新!
try
{
this.oleDbConnection1.Open();
this.oleDbCommand1.CommandText=upcmd;
this.oleDbCommand1.ExecuteNonQuery();
this.oleDbConnection1.Close();
}
catch (Exception ex)
{
this.oleDbConnection1.Close();
MessageBox.Show("发生以下错误:"+ex.Message);
}前三行是一行.
SET 里并没有写表的全部字段,无法更新(ExecuteNonQuery返回0)!但也不抛出错误.
如果在SET后把表的全部字段全部写全,就能更新!
解决方案 »
- beforenavigate2 url无法重定向问题
- 由于目标机器积极拒绝,无法连接。 127.0.0.1:8044
- 在input文本框的上边框位置弹出一个div,请高手帮忙
- sql多表查询
- 重新抛出异常和不用try有什么区别?
- 有没有办法可以做到这点.后图抓图.
- 暂停循环和继的问题! 欢迎来看看!
- 很奇怪的问题!
- DataGridView中怎么样实现创建包含数据的列和行,并将它们直接添加到DataGridView中
- 哪里能下载VS
- 怎样进行大小写转换??在线等待......
- 如何在TabControl的tabpage上的text上点击右键时 将鼠标位置的TabPage设为SelectedTab
试试不用ole的东西,直接用SqlClient的东西看是否可以。我总觉得ole东西不好。
我用SQL数据库做了个实验,没有这个问题,但我现在用的是ACCESS,怎么办?这个问题.net的BUG吗?
string strQuery="update typeinfo set typename=@test where typeid='1'";
OleDbCommand myComm=new OleDbCommand(strQuery,myConn);
myComm.Parameters.Add("@Test",DateTime.Now.ToString());
myComm.ExecuteNonQuery();以上执行能更新,并不需要写出所有字段。
private System.Data.OleDb.OleDbCommand oleDbCommand1;
// oleDbCommand1
//
this.oleDbCommand1.Connection = this.oleDbConnection1;this.oleDbCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("@cost", System.Data.OleDb.OleDbType.Boolean));
this.oleDbCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("@server", System.Data.OleDb.OleDbType.Boolean));
this.oleDbCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("@find", System.Data.OleDb.OleDbType.Boolean));
this.oleDbCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("@system", System.Data.OleDb.OleDbType.Boolean));
// 以上为自动生成的代码 oleDbCommand1.Parameters[0].Value=ckb_cost.Checked;
oleDbCommand1.Parameters[1].Value=ckb_server.Checked;
oleDbCommand1.Parameters[2].Value=ckb_find.Checked;
oleDbCommand1.Parameters[3].Value=ckb_system.Checked;
//为参数赋值有问题吗?请指教,先谢了
建议不要用控件,直接用OleDbCommand来声明再试试。
还是不行呀!比如我更新的是第三个字段(布尔型),SET里没写前两个字段,提示数据类型不匹配,因为前两个字段是varchar型.如果把前两个字段加上去,就没有问题.纳了闷了!
如果你用的都是控件,有可能在不同地方会造成冲突,建议直接用OleDb声明变量来进行。