update未能更新数据库

update未能更新数据库,第1张

c# adapterUpdate无法将数据更新进数据库

你的datagridview绑定的数据源需要实现了添加,删除,编辑相应的SQL语句才行。如果只用了DataSet绑定,而没有通过数据适配器绑定就无法自动实现,必须手动做。

要注意SQL Server和Access的T-SQL语法是有不同的,要分情况。

Builder自动生的sql中,所有你传的变量在 Builder 的 updateText属性 中都是问号的。

MeDataSet1Tables(0)AcceptChanges()时,更新不进去,可能有三种原因有的列名是sql关键字:

1、MeOleDbDataAdapter1的问题,获得数据源的适合器和更新数据的适配器不是同一个。此种情况的解决方法是:取数据、更新数据都用同一个OleDbDataAdapter

2、更新数据库时,更新的列名是数据库关键字,比如你的数据库有一个叫User的列名,如果要更新User这个字段的时候,就会报异常。此种情况的解决方法是:初使化Builder时加如下两句

theBuilderQuotePrefix = "[";

theBuilderQuoteSuffix = "]";

3、更新的数据类型和数据库中对应列的类型不匹配,比如你要更新的列为 [User],它的类型为int,但是你要更新的数据是string类型赋过去的,就会报异常了,此种情况解决方法是:将类型统一

补充:你可以试着断点看看更新之前更新的数据源有没有相对更新

我以前也遇到过这个问题~非常的郁闷~

不过也确实不用在这一棵树上吊死~~

可以直接用拼SQL字符串的方法来实现~

我帮你改了一下!!

string content = RequestForm["content1"]ToString();//用来接收文本编辑器提交的文本(包括其格式)

string b = RequestForm["txtUserName"]ToString();//用来接收提交过来的编号

string dbpath2 = SystemConfigurationConfigurationSettingsAppSettings["dbpath"];

OleDbConnection conn2 = new OleDbConnection("Provider=MicrosoftjetOLEDB40;Data source=" + ServerMapPath(dbpath2));

conn2Open();

string str =stringFormat("update xianlu set richengshisu='{0}' where bianhao={1}",content,b); //用 format 方法拼接字符串

ResponseWrite(str);

OleDbCommand cmd1 = new OleDbCommand();

cmd1CommandText = str;

cmd1Connection = conn2;

try

{

int i=cmd1ExecuteNonQuery();

ResponseWrite("<br>" + str);

ResponseWrite("<script>alert('添加成功!');</script>");

ResponseWrite("<script>locationreplace('/xianluaspx');</script>");

}

catch (OleDbException ex)

{

ResponseWrite("添加失败!" + exMessage);

}

conn2Close();

cmd1ConnectionClose();

cmd1Dispose();

以上就是关于update未能更新数据库全部的内容,包括:update未能更新数据库、OleDbDataAdapter 的update方法无法更新数据库,插入的时候没有问题,更新的时候也不报错,方法如下:、带参数的UPDATE语句无法更新数据库问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9540405.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存