C#里怎样把一个DataTable的数据追加进数据库里的某个表

方法一

DataTable table = new DataTable();
            //TODO: init table...
            string connStr = "user id=" + dbInfo.UserName + ";data source=" + dbInfo.DBServerIP + ";persist security info=False;initial catalog=" + dbInfo.DatabaseName + ";password=" + dbInfo.Password;
            SqlConnection conn = new SqlConnection(connStr);
            conn.Open();
            SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(conn);
            sqlBulkCopy.DestinationTableName = dbInfo.TableName;
            sqlBulkCopy.WriteToServer(table);
            sqlBulkCopy.Close();

方法二

DataTable table = new DataTable();
            //TODO: init table...

            string connStr = "user id=" + dbInfo.UserName + ";data source=" + dbInfo.DBServerIP + ";persist security info=False;initial catalog=" + dbInfo.DatabaseName + ";password=" + dbInfo.Password;
            DataTable dt = new DataTable();
            SqlConnection conn = new SqlConnection(connStr);
            SqlCommand cmd = new SqlCommand(string.Format("select * from {0} where 1=2", dbInfo.TableName), conn);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            SqlCommandBuilder Builder = new SqlCommandBuilder(sda);
            sda.Fill(dt);

            DataRow addRow = null;
            foreach (DataRow row in table.Rows)
            {
                addRow = dt.NewRow();
                for (int i = 0; i < table.Columns.Count; i++)
                {
                    addRow[i] = row[i];
                }
                dt.Rows.Add(addRow);
            }

            sda.Update(dt);

总结

1. 只有 Insert ? 那么用 SqlBulkCopy.

2. Insert/Update/Delete ? 那么用 DataAdapter.Update.

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-07 10:35:54

C#里怎样把一个DataTable的数据追加进数据库里的某个表的相关文章

把Excel里的数据插入到数据库里的方法

1.如果先在6行数据的最后一列在插入一列数据,请先把列名写好,然后再第一行的该列下输入数字, 然后选中该单元格向下拖拽一个单元格然后就能看到黑色的小框, 双击右下角黑色的小点,6行数据就 会填上默认的第一行数据 2.在第一行数据的最后一列后插入如下: ="INSERT INTO t_Tabel()values('"&&"','"&&"','"&&"',"&&&qu

过滤器里设置编码,防止提交的数据不能写入数据库

web.xml <filter>        <filter-name>CharacterEncodingFilter</filter-name>        <filter-class>com.lyq.util.CharacterEncodingFilter</filter-class>        <init-param>            <param-name>encoding</param-nam

c#逐行分元素读取记事本txt数据写进数据库

其实这里最关键的一个方法是 StreamReader类里的 ReadLine();这个方法可以逐行读取txt流里面的数据.写了个简单的demo,已经加上了详细的注释说明. ok,好了,不废话,下面直接上代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 public void InputData()          {              Dat

【Python】从0开始写爬虫——把扒到的豆瓣数据存储到数据库

1. 我们扒到了什么? id, 名称, 上映年份,上映日期,所属类目, 导演,主演,片长,评分,星评,评价人数 2. 把这些数据做一个分类. a..基本信息 :名称, 导演,上映年份, 所属类目, 片长 b.评价信息:评分,星评,评价人数 c.主演表: 主演(我在纠结要不要单独列一张表) 3 .表设计.现在有点蛋疼的是主键.用自增主键还是电影id做主键.经过我的多方面考虑,我慎重(草率)地决定,用电影id(反正都要建唯一索引,为什么不拿来当主键呢..), 所以我刚才又在id那转了一下数据 m_i

如何从一个DataTable中复制数据行到另一个DataTable中

DataTable dt = ""; //这里是填充DataTable数据 DataTable dtNew = dt.Copy(); //复制dt表数据结构 dtNew.Clear() //清楚数据 for (int i = 0; i < dt.Rows.Count; i++) { if (条件语句) { dtNew.Rows.Add(dt.Rows[i].ItemArray); //添加数据行 } } ===前提:我们已经有一个DataTable的数据表 现在需要的只是其中的一

求代码:android listview checkbox 从数据库里读取数据后怎么设置相应的checkbox为选中状态

============问题描述============ 现在有一个android listview 带checkbox,从数据库里调取相应数据后,绑定到listview 上. 那么怎么将listview 里的checkbox的选择状态与在数据库中记录一一对应? 求给出代码. 我在自定义BaseAdapter类中,getView方法中无法实现. ============解决方案1============ 这样 你点击的时候 是不是 会获取一个view  通过这个view 获取你那个 checkb

一个DataTable赋值给另一个DataTable的常用方法

DataView view = new DataView();view.Table = DataTableA;view.RowFilter = "itemType = 'book'";//itemType是DataTableA中的一个字段DataTableB= view.ToTable();或者:DataRow[] rows = DataTableA.Select("itemType = 'book'");DataTableB= DataTableA.Clone()

三种东西永远不要放到数据库里(转)

原始出处:http://simple-is-better.com/news/872 我已经在很多演讲里说过,改进你的系统的最好的方法是先避免做"蠢事".我并不是说你或你开发的东西"蠢",只是有些决定很容易被人们忽略掉其暗含的牵连,认识不到这样做对系统维护尤其是系统升级带来多大的麻烦.作为一个顾问,像这样的事情我到处都能见到,我还从来没有见过做出这样的决定的人有过好的结果的. 图片,文件,二进制数据 既然数据库支持BLOB类型的数据,把文件塞进BLOB字段里一定没有错

三种东西永远不要放到数据库里

图片,文件,二进制数据 既然数据库支持BLOB类型的数据,把文件塞进BLOB字段里一定没有错了!?错,不是这样的!别的先不提,在很多数据库语言里,处理大字段都不是很容易. 把文件存放在数据库里有很多问题: ●对数据库的读/写的速度永远都赶不上文件系统处理的速度 ●数据库备份变的巨大,越来越耗时间 ●对文件的访问需要穿越你的应用层和数据库层 这后两个是真正的杀手.把图片缩略图存到数据库里?很好,那你就不能使用nginx或其它类型的轻量级服务器来处理它们了. 给自己行个方便吧,在数据库里只简单的存放