我所拥有的是一个非常大的文本文件,需要进入特定原始的特定列。该文件大约是100k行。所以我想要做的是读取整个文件,并为每一行追加到该特定的SQL列中。这是我的,但我真的需要SQL查询的帮助
string[] primaryfix = File.ReadAllLines(dinfo+"\\"+filex);
string filename = filex.ToString();
string[] spltifilename = filename.Split('.');
foreach (string primary in primaryfix)
{
string sqltable = ("dbo.amu_Textloadingarea");
string sql = "update " + sqltable + " set [Text] = [Text] + '" + primary + "' where begbates = '" + spltifilename[0] + "'";
SqlConnection con = new SqlConnection("Data Source= Corvette ;Initial Catalog= GSK_Avandia_SSECASE;Integrated Security= SSPI");
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataReader reader = cmd.ExecuteReader();
con.Close();
}
一切都很好,除了字符串sql,它没有按照我希望的方式更新。
任何帮助总是受到赞赏。
答案 0 :(得分:0)
我看到的第一件事是你没有逃避文本文件的输入;任何SQL转义字符(如单引号)都会破坏该命令。我建议使用参数,所以你根本不用担心逃避。
除此之外,没有任何想法可以说明为什么命令不是工作,但是我想知道如果它是如此大的文件来读取它可能不会导致更少的问题而不是一次一行。
答案 1 :(得分:0)
看起来你正试图用循环中的代码从数据库中读取。 SqlDataReader提供了一种从数据库中读取行的方法,但不是相反。
替换
SqlDataReader reader = cmd.ExecuteReader();
与
cmd.ExecuteNonQuery();