2017-05-25 28 views
0

誰かがC#sqliteのデータテーブルを別のデータテーブルにコピーする方法を共有することはできますか?ありがとう。 また、列名も変更する必要があります。私は手動で選択して更新しようとしましたが、エラーが発生しました。あなたの分かち合いに感謝します。ありがとう。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()); 

答えて

0

SQLiteはJoin文をサポートしています。これは次のようなものです。

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

http://www.sqlite.org/lang_insert.html

。これを参照してください、その後、一度にこれを実行します。また、あなたが取引でこれを行うことを確認して、あなたの第二の部分に関する記述

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"; 
関連する問題