从文本文件中读取文本文件并使用C#插入SQL Server数据库

时间:2017-04-07 02:02:48

标签: c# sql-server

我正在尝试使用C#读取文本文件,并将该文本文件中的数据插入到SQL Server表中。

我使用的是批量插入,但后来才知道使用批量插入。 我的文字包含2.002405-3.SSKK170068-4.160930053856-5.FC71百位数据

我想插入如果是2.只插入" 002405"如果是3只插入" SSKK170068"在sql表中。同样是4和5.我被困在这部分的部分。

代码:

int i = 1;
const string connectionString ="Data Source=test\\SQLEXPRESS;Initial Catalog=SAMPLE;Integrated Security=SSPI";

var dbConn = new SqlConnection(connectionString);

var sr = new StreamReader(@"");
string line = sr.ReadLine();

//string[] strArray = line.Split(' ');
string[] strArray = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

var dt = new DataTable();

for (int index = 0; index < strArray.Count(); index++)
      dt.Columns.Add(new DataColumn());

do
{
    DataRow row = dt.NewRow();

    //if (strArray.Length > 11)
    //{
    //    if (strArray[10].Contains("(1."))
    //    {
    //        //dt.Rows.Add(row);
    //    }
    //}

    //string[] itemArray = strArray[i].Split(' ');
    string[] itemArray = strArray[i].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

    row.ItemArray = strArray;
    dt.Rows.Add(row);
    i = i + 1;

    line = sr.ReadLine();
} while (!string.IsNullOrEmpty(line = sr.ReadLine()));

//line.Split(' ').Where(l => !string.IsNullOrEmpty(l));

dbConn.Open();

using (SqlBulkCopy bulkcopy = new SqlBulkCopy(dbConn))
{
    bulkcopy.DestinationTableName = "test_rx";
    bulkcopy.BatchSize = dt.Rows.Count;

    // Load the data to the database
    bulkcopy.WriteToServer(dt);
    dbConn.Close();

    // Close up          
    bulkcopy.Close();
}

0 个答案:

没有答案