我有一个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是主键。
表格应如下所示:
tblStudents
id code amount
1 ab11 5000
2 ab11 6000
3 ab11 8000
4 ab11 7000而另一个表应该有所有数据,只有代码不是"ab11",而月份应该出现在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);
}
}
}我不能把任何东西放进桌子,我的桌子是空的
students.csv文件必须插入的表是t_original,我必须跳过第一行
如有任何帮助和建议,我们将不胜感激。
谢谢
发布于 2015-03-31 12:32:28
你认为@StuartLC的评论太直截了当了;正如他所说的,他的评论中的下划线代表空格。添加的下划线的效果是,它现在读取:BULK INSERT t_original FROM_{file} (注意from和文件之间的空间不足)。WITH前面的下划线也是如此。
此外,双破折号(--)表示一个注释,因此它之后的所有内容都没有执行。
如果您调试,并获得BulkInsert的实际值,并执行该语句--如果它执行的话,我会非常惊讶,它可能会使错误更容易找到。
https://stackoverflow.com/questions/29363575
复制相似问题