已经完成了datatable读出access数据,在增加或删除了datatable表内数据后怎么同步到access内,请教完整代码,简单易懂的。
已经完成了datatable读出access数据,在增加或删除了datatable表内数据后怎么同步到access内?请教完整代码,简单易懂的。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
7条回答 默认 最新
- CSDN专家-showbo 2021-08-11 14:50关注
DataTable Row对象有RowState,根据RowState进行相关操作就行了,示例如下,有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~
原始数据
执行后using System; using System.Data; using System.Data.OleDb; using System.Collections.Generic; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { List<string> delIds = new List<string>();//用于存储删除的记录id var conn = new OleDbConnection(@"provider=microsoft.ace.oledb.12.0;data source=D:\文件\C#\Console\ConsoleApp1\bin\Debug\data.accdb"); DataTable dt = new DataTable(); var da = new OleDbDataAdapter("select id,username,sex,age from data", conn);//age为数字型,其他字符串 da.Fill(dt); dt.Rows.Add(0, "username3", "sex3", 33);//新增一行,id列赋值为0 DataRow row = dt.Rows[0];//要删除的行 delIds.Add(row["id"].ToString());//注意remove前将id添加delIds列表 dt.Rows.Remove(row); dt.Rows[0]["username"] = "update username row2";//更改第一行数据(原第二行数据,上面remove后变第一行)的用户名 List<string> sqls = new List<string>();//用于存储生成的SQL,以便执行 string sql = ""; //遍历数据行生成添加和修改的记录的SQL foreach (DataRow dr in dt.Rows) { sql = ""; switch (dr.RowState) { case DataRowState.Added://新增 sql = "insert into data(username,sex,age)" + "values('" + dr["username"].ToString().Replace("'", "'") + "','" + dr["sex"].ToString().Replace("'", "'") + "'," + dr["age"] + ")"; break; case DataRowState.Modified://修改 sql = "update data set username='" + dr["username"].ToString().Replace("'", "'") + "',sex='" + dr["sex"].ToString().Replace("'", "'") + "',age= where id=" + dr["id"]; break; } if (sql != "") sqls.Add(sql); } //生成删除的sql语句 if (delIds.Count > 0) sqls.Add("delete from data where id in(" + string.Join(",", delIds) + ")"); if (sqls.Count > 0) { conn.Open(); //遍历sql语句执行 OleDbCommand cmd = new OleDbCommand() { Connection = conn }; foreach (string s in sqls) { cmd.CommandText = s; cmd.ExecuteNonQuery(); Console.WriteLine(s); } } conn.Close(); Console.ReadKey(); } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 一直显示正在等待HID—ISP
- ¥15 Python turtle 画图