[英]how to manage the data I insert into a table using BULK INSERT
我有一個C#應用程序 ,可將數據從csv文件捕獲到SQL表
文本文件如下所示
students.csv
Header 201501
id code amount
1 ab11 5000
2 ab11 6000
3 ab11 8000
3 wx34 2500
3 df21 1000
4 ab11 7000
4 zx54 3500
每個項目都在csv文件的自己的單元格中。 “我只是將其隔開,以便您可以看到文件中的內容”。
基本上,我必須將此數據插入到兩個表中,但是正如您在id列中看到的那樣,are元素具有相同的編號,而id是主鍵 。
該表應如下所示:
tbl學生
id code amount
1 ab11 5000
2 ab11 6000
3 ab11 8000
4 ab11 7000
而另一個表中的所有數據應僅包含帶有非“ ab11”代碼的數據,並且應具有出現在Header旁邊的csv文件中的月份。 並如下圖
tblPaid
Header 201501
id code amount month
3 wx34 2500 201501
3 df21 1000 201501
4 zx54 3500 201501
這是我目前所擁有的,但似乎無法獲得輸出
private void btnSelect_Click(object sender, EventArgs e)
{
btnNext.Enabled = true;
openFileDialog1.Filter = ".csv file|*.csv*";
openFileDialog1.FilterIndex = 1;
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.Yes)
{
String file = openFileDialog1.FileName;
btnNext.Enabled = true;
try
{
string connect = "Data Source=BRIAN-PC\\SQLEXPRESS; Initial Catalog=PSAHoldings; user id =sa; Password=kagiso";
string table = "IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='t_original' AND xtype='U')" +
"CREATE TABLE t_original (" +
"empId varChar(10) NOT NULL PRIMARY KEY," +
"paycode varChar(10) NOT NULL," +
"amount int NOT NULL," +
")";
SqlConnection con = new SqlConnection(connect);
con.Open();
SqlCommand createTable = new SqlCommand(table, con);
createTable.ExecuteNonQuery();
String BulkInsert = "BULK INSERT t_original FROM_" +
file + "_WITH (--FIRSTROW = 3," +
"FIELDTERMINATOR = '|'," +
"ROWTERMINATOR = '\\n')";
SqlCommand bulkCmd = new SqlCommand(BulkInsert, con);
bulkCmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
MessageBox.Show(ex.ToString(), "Exception Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
我什么都沒進桌子,我的桌子是空的
t_original是我必須將students.csv文件插入其中的表,而我必須將第一個跳過
任何幫助和建議將不勝感激
謝謝
您對@StuartLC的評論太直白了; 如他所說,他評論中的下划線代表空格。 添加的下划線的作用是,現在顯示為: BULK INSERT t_original FROM_{file}
(注意from
和file之間沒有空格)。 在WITH
前面的下划線也是如此。
此外,雙破折號( --
)表示注釋,因此它之后的所有內容都不會執行。
如果您調試並獲取BulkInsert
的實際值,然后執行該語句,如果執行該語句,我將感到非常驚訝,這可能會使錯誤更容易發現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.