C#把DataTable里的数据批量导入SQLite
2015-02-25 00:55
1401 查看
原目的:从一个老的SQLite里读出数据,存到DataTable里,然后保存到一个新的SQLite数据库中。需要引用System.Data.SQLite.dlltry{SQLiteConnection Conn = new SQLiteConnection();DataTable dt = new DataTable();Conn.ConnectionString = <span style="font-family: Arial, Helvetica, sans-serif;">"Data Source=.\\OldData.db";</span>Conn.Open(); //打开旧数据库string sql = "SELECT tbl_name, sql FROM sqlite_master WHERE type='table' ORDER BY name";SQLiteDataAdapter oldadapter = new SQLiteDataAdapter(sql, Conn);oldadapter.Fill(dt);//获得旧数据库里所有表的名字和CREATE命令string output = "NewData.db";SQLiteConnection.CreateFile(output);//创建新的数据库SQLiteConnection conn = new SQLiteConnection();SQLiteConnectionStringBuilder connstr = new SQLiteConnectionStringBuilder();SQLiteDataAdapter adapter;connstr.DataSource = output;conn.ConnectionString = connstr.ToString();conn.Open(); //打开新的数据库Console.WriteLine("Created and opened a new database.");DataTable single;String tbl_name;String sqlstring;for (int k = 0; k < dt.Rows.Count; k++){tbl_name = dt.Rows[k][0].ToString();sqlstring = dt.Rows[k][1].ToString();//CREATE TABLE命令SQLiteCommand cmd = new SQLiteCommand();;cmd.CommandText = sqlstring;cmd.Connection = conn;cmd.ExecuteNonQuery(); //创建新表sql = string.Format("SELECT * FROM {0}", tbl_name);// "select * from " + tbl_name;oldadapter = new SQLiteDataAdapter(sql, Conn);single = new DataTable();oldadapter.AcceptChangesDuringFill = false; //重要oldadapter.Fill(single); //获得老表里的数据<pre name="code" class="csharp"> //...................对数据进行处理 cmd = conn.CreateCommand(); cmd.CommandText = sql; adapter = new SQLiteDataAdapter(cmd); SQLiteCommandBuilder builder = new SQLiteCommandBuilder(adapter); adapter.Update(single); //将DataTable里的数据全部导入新表 Console.WriteLine("Successfully insertedtable: " + tbl_name); } conn.Close(); Conn.Close(); Console.WriteLine("Finished."); } catch (Exception ex) { Console.WriteLine("Something is wrong."); }程序运行的时候貌似依然是一条一条的插入,时间上并不效率。一个5M的数据库(不到100个表)跑了将近5个小时。而写到文本文件的话不到一秒钟。。插入表之前需要先创建表。如果不能事先获得CREATE命令的话,自行创建的话可能会比较麻烦。
相关文章推荐
- sql sever2005中批量导入excel表格数据(Asp.net C#)
- 《项目经验》--简单三层使用DataTable向数据库表批量导入数据---向SqlServer一张表中导入数据
- 如何把批量数据导入到android 的 sqlite 数据库(转)
- C#利用SqlDataAdapte对DataTable进行批量数据操作
- Sqlite3 批量导入数据
- c# Sqlite批量添加数据
- C#如何将一个DataTable中满足条件的数据导入另一个DataTable
- 在C#应用程序中,利用表值参数过滤重复,批量向数据库导入数据,并且返回重复数据
- 功能齐全、效率一流的免费开源数据库导入导出工具(c#开发,支持SQL server、SQLite、ACCESS三种数据库),每月借此处理数据5G以上
- c# 将datatable数据批量添加到数据库
- 如何把批量数据导入到android 的 sqlite 数据库(更新中)
- C# BulkCopy方式数据批量导入数据库
- 黑马程序员_筛选DataTable中的数据,批量导入到数据库中
- 将WPF中listview的数据导入到SQLITE(C#)
- C#连接数据库、读EXCEL表、批量导入数据
- 【转】C#批量导入数据到sqlserver
- C# 实现批量导入数据
- asp.net(C#)开发之一 dataset(datatable) 数据导入excel
- C# 使用MySqlBulkLoader 批量导入数据到Mysql
- C# 中dataTable中的数据批量增加至数据表中