簡體   English   中英

C#sqlite以更快的方式將數據表復制到另一個數據表

[英]C# sqlite copy a datatable to another datatable in faster way

對於C#sqlite,任何人都可以共享如何以更快的方式編碼將數據表復制到另一個數據表嗎? 謝謝。 並且還需要更改列名。 我試圖手動選擇和更新,但是遇到錯誤。 感謝您的分享。 謝謝。

或在datagridview中顯示數據表時如何修改列標題? 謝謝。

dbConnect = new SQLiteConnection("Data Source=school.db;Version=3;");
dbConnect.Open();
cmd4 = new SQLiteCommand();
cmd4 = dbConnect.CreateCommand();
cmd4.CommandText = "DELETE FROM GroupEven";
cmd4.ExecuteNonQuery();
cmd4.CommandText = "SELECT Day, Day_ID, Standard, Timeslot1_TeacherName, Timeslot1_Subject, Timeslot2_TeacherName, Timeslot2_Subject, Timeslot3_TeacherName, Timeslot3_Subject, Timeslot4_TeacherName, Timeslot4_Subject, Timeslot5_TeacherName, Timeslot5_Subject, Timeslot6, Timeslot7_TeacherName, Timeslot7_Subject, Timeslot8_TeacherName, Timeslot8_Subject, Timeslot9_TeacherName, Timeslot9_Subject, Timeslot10_TeacherName, Timeslot10_Subject, Timeslot11_TeacherName, Timeslot11_Subject FROM TimetableFinal";
DataTable dt4 = new DataTable();
SQLiteDataAdapter da4 = new SQLiteDataAdapter(cmd4);
da4.Fill(dt4);
foreach (DataRow dr4 in dt4.Rows)
{
    cmd4.CommandText = "INSERT INTO TimetableFinal2 (Day, Day_ID, Standard, 7:30am-8:00am, 7.30am-8.00am, 8:00am-8:30am, 8.00am-8.30am, 8:30am-9:00am, 8.30am-9.00am, 9:00am-9:30am, 9.00am-9.30am, 9:30am-10:00am, 9.30am-10.00am, 10:00am-10:20am, 10:20am-10:50am, 10.20am-10.50am, 10:50am-11:20am, 10.50am-11.20am, 11:20am-11:50am, 11.20am-11.50am, 11:50am-12:20pm, 11.50am-12.20pm, 12:20pm-12:50pm, 12.20pm-12.50pm) VALUES (@Day, @Day_ID, @Standard, @7:30am-8:00am, @7.30am-8.00am, @8:00am-8:30am, @8.00am-8.30am, @8:30am-9:00am, @8.30am-9.00am, @9:00am-9:30am, @9.00am-9.30am, @9:30am-10:00am, @9.30am-10.00am, @10:00am-10:20am, @10:20am-10:50am, @10.20am-10.50am, @10:50am-11:20am, @10.50am-11.20am, @11:20am-11:50am, @11.20am-11.50am, @11:50am-12:20pm, @11.50am-12.20pm, @12:20pm-12:50pm, @12.20pm-12.50pm)";
    cmd4.Parameters.AddWithValue("@Day", dr4["Day"].ToString());

SQLite確實支持Joinings Insert語句,類似這樣。

INSERT INTO 'tablename' ('column1', 'column2') 
VALUES
 ('data1', 'data2'),
 ('data3', 'data4'),
 ('data5', 'data6'),
 ('data7', 'data8');

參見此。.http ://www.sqlite.org/lang_insert.html

然后一口氣執行。 另外,請確保您在事務中執行此操作並使用using語句進行環繞

using(var dbConnect = new SQLiteConnection("DataSource=school.db;Version=3;"))
{
   dbConnect.Open();
   using(var transaction = dbConnect.BeginTransaction())
   {
       string insertQuery = ...// your insert query
       using (var cmd = dbConnect.CreateCommand())
       {
          cmd.CommandText = insertQuery;
         foreach (DataRow dr4 in dt4.Rows)
         {
           cmd.Parameters.AddWithValue(...);
         }
         cmd.ExecuteNonQuery()
       }
       transaction.Commit();
   }
}

關於第二部分:在datagridview中顯示數據表時,如何修改列標題,

多數民眾贊成在完全獨立,與Sqlite插入無關。 獲取數據源后,您可以執行以下操作

dataGridView1.Columns[i].HeaderText = "My New header";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM