我正在尝试使用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();
}