c# adapter.Update无法将数据更新进数据库

c# adapter.Update无法将数据更新进数据库,第1张

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

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

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

需要声明使用CommandBuilder对象,你是 SQL 数据库还是 ACCESS 数据库,这两者的对象不一样的。

对于:SQL server

Dim Mybuilder As SqlCommandBuilder = New SqlCommandBuilder(da)

daUpdate(dt) '使用Update方法实现更新到数据库

对于:ACCESS

Dim Mybuilder As OleDbCommandBuilder = New OleDbCommandBuilder(da)

daUpdate(dt) '使用Update方法实现更新到数据库

private void 保存修改结果ToolStripMenuItem_Click(object sender, EventArgs e) { dataGridView1EndEdit(); adapterUpdate(tablegetchanges());//修改这句 MessageBoxShow("修改后的数据已经成功保存到数据库中","数据保存"); }

造成这种情况的根本原因是你的数据库表结构设计的不合理,有问题。

建议重新设计表结构。

就算你可以用一些偏门方法解决该问题,还是会留下很多隐患。

比如,新增的时候、删除的时候,都会碰到类似问题。极有可能造成数据不完整。

Update语句用于修改表中的数据。用于更新修改指定记录的数据,语法:

UPDATE表名称SET列名称=新值WHERE列名称=某值

对符合条件的记录,更新修改指定字段的值。若没有WHERE条件限定,则对所有记录进行更新修改。

void Button2_Click(object sender, EventArgs e)

{

string city = TextBox4TextTrim()Replace(",", "");

if (city == "") { ResponseWrite("<script>alert('city is not null ');</script>"); return; }

string strconnect;

strconnect = "Provider=microsoftjetoledb40;";

strconnect += "data source=" + MapPath("uktripmdb");

strconnect += ";persist security info=false";

OleDbConnection DBconnection = new OleDbConnection(strconnect);

string sql = "";

sql = " SELECT COUNT() FROM  hotels WHERE hot_city='" + city + "' ";

OleDbCommand DBcommand = new OleDbCommand();

DBcommandCommandText = sql;

DBcommandConnection = DBconnection;

DBconnectionOpen();

int count = ConvertToInt32(DBcommandExecuteScalar());

if (count == 0) { ResponseWrite("<script>alert('city is null ');</script>"); return; }

DBconnectionClose();

sql = "update hotels set hot_city=@hot_city'" + TextBox4Text + "', hot_name=@hot_name'" + TextBox2Text + "' , hot_star=@hot_star'" + TextBox2Text + "', hot_link=@hot_link'" + TextBox4Text + "' WHERE hot_city=@hot_city  ";

OleDbParameter[] parm = {new OleDbParameter("@hot_city",city) };

DBcommandCommandText = sql;

DBcommandConnection = DBconnection;

DBconnectionOpen();

DBcommandExecuteNonQuery();

DBconnectionClose();

}

//写了半天也没搞明白你具体想干嘛~~~

可以用ADO方法

rsCnn = "PROVIDER=MicrosoftJetOLEDB40;Data Source=" & DataPath & ";mode=Read|write"

rsTmpOpen "Select From 时刻段电量 ", rsCnn, adOpenDynamic, adLockBatchOptimistic

With rsTmp

!峰数据 = rsTmp1Fields(strName(k) & "峰")Value

!平数据 = rsTmp1Fields(strName(k) & "平")Value

!谷数据 = rsTmp1Fields(strName(k) & "谷")Value

!总数据 = !峰数据 + !平数据 + !谷数据

UpdateBatch

End With

Set rsTmp = Nothing

<%

'连接数据库 dbmdb是您的数据库文件

Set conn = ServerCreateObject("ADODBConnection")

connstr="Provider=MicrosoftJetOLEDB40;Data Source=" & ServerMapPath("dbmdb")

connopen connstr

'执行语句

connexecute "update [表名] set [列名]=值 where [id]=编号"

%>

如下面一个数据库

数据库文件名 123mdb

表名 userinfo

数据/列名 id username password

0 lorabit PiG!!!

1 paint DoG!!!

当paint用户需要更新其密码为PiG!!!时,我们就需要这样一段ASP

<%

'连接数据库 dbmdb是您的数据库文件

Set conn = ServerCreateObject("ADODBConnection")

connstr="Provider=MicrosoftJetOLEDB40;Data Source=" & ServerMapPath("123mdb")

connopen connstr

'执行语句

connexecute "update [userinfo] set [password]='PiG!!!' where [id]=1"

%>

你也可以使用下面这一段,两段的差别在于第一段是靠用户ID来确定行,而第二段是搜索用户名。

<%

'连接数据库 dbmdb是您的数据库文件

Set conn = ServerCreateObject("ADODBConnection")

connstr="Provider=MicrosoftJetOLEDB40;Data Source=" & ServerMapPath("123mdb")

connopen connstr

'执行语句

connexecute "update [userinfo] set [password]='PiG!!!' where [username]='paint'"

%>

如果还有不懂 QQ233349789

以上就是关于c# adapter.Update无法将数据更新进数据库全部的内容,包括:c# adapter.Update无法将数据更新进数据库、VB.NET,将数据从dataset中删除了,如何更新到数据库、adapter.update(table);为什么不能更新数据到数据库,代码如下等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/9722084.html

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

发表评论

登录后才能评论

评论列表(0条)

保存