【发布时间】:2015-04-01 08:34:29
【问题描述】:
您好,我有一个应用程序,用户可以浏览 csv 文件,而 csv 文件中的数据只能使用 BULK INSERT 写入表中
文本文件看起来像这样
Student_head 201501
student_id code amount
1 salb 10015
2 salb 10016
3 salb 10017
4 c100 4000
5 salb 10022
END
我需要做的是跳过前两行和最后一行。
我应该得到这样的东西:
1 salb 10015
2 salb 10016
3 salb 10017
4 c100 4000
5 salb 10022
我已经尝试过这段代码,但似乎什么都没有发生
openFileDialog1.Filter = ".csv file|*.csv*";
openFileDialog1.FilterIndex = 1;
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.Yes)
{
String file = openFileDialog1.FileName;
using (var reader = new StreamReader(file))
{
string firstLine = reader.ReadLine();
string[] splitedLine = firstLine.Split(';');
string month = splitedLine[1];
}
try
{
string connect = "Data Source=George-PC\\SQLEXPRESS; Initial Catalog=Students; user id =sa; Password=george1";
SqlConnection con = new SqlConnection(connect);
con.Open();
String BulkInsert = "BULK INSERT t_original FROM" +
file + "WITH (FIRSTROW = 3," +
"FIELDTERMINATOR = ''," +
"MAXERRORS = 0," +
"ROWTERMINATOR = '\\n')";
//"UPDATE t_original"+
//"SET month =" + month +
//"WHERE month is null";
SqlCommand bulkCmd = new SqlCommand(BulkInsert, con);
bulkCmd.ExecuteNonQuery();
任何帮助和建议将不胜感激
谢谢
【问题讨论】:
-
您可以预处理您的文件并删除您不想导入的行吗?
-
@LeeWillis 这就是问题所在,这个应用程序将被很多人使用,并且 csv 文件会有所不同,但里面有更多相同的数据。前 2 行和最后一行应该总是被跳过
-
你不是已经问过他了吗,有人指出你在 FROM 之后和 WITH 之前缺少一个空格?