static void Main(string[] args) { //SQLiteConnection conn = new SQLiteConnection(); DataFactory df = new DataFactory(DatabaseProvider.SQLite, "Data Source=foo.db3; Pooling=true; Read Only=false; FailIfMissing=false"); DataSet ds = new DataSet(); ds.ReadXml(@"c:\test.xml"); df.CreateTable("z", ds.Tables[0]); df.AppendTable("z", ds.Tables[0]); //df.ExecuteNonQuery("create table foobar(id int, name varchar(100), phone varchar(10))"); //for (int i = 0; i < 10; i++) //{ // string q = string.Format("insert into foobar(id, name, phone) values ({0}, '{1}', '{2}')", i, "Name" + i, "Phone" + i); // df.ExecuteNonQuery(q); //} //DataSet ds = new DataSet(); //ds = df.Fill("select * from foobar"); }
private void btnImport_Click(object sender, EventArgs e) { const string OUT_TABLENAME = @"CSVImportTest"; const int MAX_BUFFER = 100; var start = DateTime.Now; try { var dci = csfSaveAs.DataConnectionInfo; if (dci.InputSource != InputSource.Database) { throw new ArgumentException("Please choose a database"); } var df = new DataFactory(dci.Provider, dci.ConnectionString); df.TestConnection(); if (df.Database.GetTables(OUT_TABLENAME, QueryFilter.Exact).Count >= 1) { df.ExecuteNonQuery("drop table " + OUT_TABLENAME); } int nr = 0; using (DataTable dt = new DataTable(OUT_TABLENAME)) { var options = new DelimiterImportOptions(","); foreach (var item in ImportManager.ImportRow(txtFilename.Value, options)) { nr++; #region Init Columns Definition if (nr == 1) { DataUtil.CopyColumns(item.Table.Columns, dt.Columns); } #endregion var dr = dt.NewRow(); DataUtil.CopyRow(item, dr); dt.Rows.Add(dr); if (nr % MAX_BUFFER == 0) { df.AppendTable(OUT_TABLENAME, dt); dt.Rows.Clear(); } } if (dt.Rows.Count > 0) { df.AppendTable(OUT_TABLENAME, dt); dt.Rows.Clear(); } } MessageBox.Show("Done Elapsed = " + DateUtil.ElapsedTime(start, DateTime.Now)); } catch (Exception ex) { FormUtil.WinException(ex); } }