0

这是我需要在路径中定义文件路径的代码。在“字符串路径”中,我有类似的东西。

(C:\文件夹\text.txt)

string path = @"C:\path.txt";
StreamReader str = new StreamReader(path);
string datasample;

while ((datasample = str.ReadLine()) != null)
      {
      }   

我需要做的是将 txt 文件导入 SQL 表。这是我的导入代码,它工作正常。

StreamReader sr = new StreamReader(Global_Variables.filename.ToString());
             DataTable dt = new DataTable();
                DataRow row;
                dt.Columns.Add(new DataColumn("Reports"));

                while (!sr.EndOfStream)
                {
                    string value = sr.ReadLine();
                    if ((value.Length != 0) && (value != ""))
                    {
                        row = dt.NewRow();
                        row[0] = value;
                        dt.Rows.Add(row);
                    }
                }
                SqlBulkCopy bc = new SqlBulkCopy(Global_Variables.con.ConnectionString, SqlBulkCopyOptions.TableLock);
                bc.DestinationTableName = "tbl_WinApps_ApprovedExpReports";
                bc.BatchSize = dt.Rows.Count;
                Global_Variables.con.Open();
                bc.WriteToServer(dt);
                bc.BulkCopyTimeout = 120;
                bc.Close();
                Global_Variables.con.Close();

我似乎无法将这两个代码连接在一起。请帮助:(

4

1 回答 1

0

似乎您已经使用 StreamReader 遍历文件,因此您可以执行以下操作:

string path = File.ReadAllText(@"C:\path.txt");
string line = "";
StreamReader sr = new StreamReader(path);
DataTable dt = new DataTable();
DataRow row;
dt.Columns.Add(new DataColumn("Reports"));

while ((line = sr.readLine()) != null)
{
    if ((line.Length != 0) && (line != ""))
    {
        row = dt.NewRow();
        row[0] = line;
        dt.Rows.Add(row);
    }
}

SqlBulkCopy bc = new SqlBulkCopy(Global_Variables.con.ConnectionString, SqlBulkCopyOptions.TableLock);
bc.DestinationTableName = "tbl_WinApps_ApprovedExpReports";
bc.BatchSize = dt.Rows.Count;
Global_Variables.con.Open();
bc.WriteToServer(dt);
bc.BulkCopyTimeout = 120;
bc.Close();
Global_Variables.con.Close();
于 2013-01-07T08:36:36.543 回答