您的位置:首页 > 数据库 > SQL

SqlBulkCope数据的批量插入(14)

2013-06-02 20:19 218 查看
第一步创建一个名为“SqlBulkCope”的窗体,然后拖一个按钮名为btnSqlBulkCope,并且为其添加Click事件,代码如下:

private void btnImport_Click(object sender, RoutedEventArgs e)
{
string connStr = ConfigurationManager.ConnectionStrings["dbLoginConnStr"].ConnectionString;
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "文本文件|*.txt";
if (ofd.ShowDialog() == false)
{
return;
}
string[] lines = File.ReadLines(ofd.FileName, Encoding.Default).ToArray();
DateTime startTime = DateTime.Now;
DataTable table = new DataTable();
table.Columns.Add("StartTelNum");
table.Columns.Add("TelArea");
table.Columns.Add("TelType");
table.Columns.Add("TelZone");

for (int i = 1; i < lines.Count(); i++)
{
string line = lines[i];
string[] strs = line.Split('\t');//‘\t’为制表符
string startTelNum = strs[0];
string telArea = strs[1];
telArea = telArea.Trim('"');//去掉两边的双引号:"北京市"
string telType = strs[2];
telType = telType.Trim('"');//去掉两边的双引号:"联通"
string telZone = strs[3];
telZone = telZone.Trim('"');//去掉两边的双引号:"010"
DataRow row =table.NewRow();//创建一个DataRow对象
row["StartTelNum"]=startTelNum;//一定要在一开始创建table.Columns添加列
row["TelArea"]=telArea;
row["TelType"]=telType;
row["TelZone"] = telZone;
table.Rows.Add(row);//NewRow只是创建,没有插入
}
using (SqlBulkCopy bulkCope = new SqlBulkCopy(connStr))
{
bulkCope.DestinationTableName="T_TelNum";
//添加dataTable中列名与数据库表中列名的映射
bulkCope.ColumnMappings.Add("StartTelNum","StartTelNum");
bulkCope.ColumnMappings.Add("TelArea","TelArea");
bulkCope.ColumnMappings.Add("TelType","TelType");//dataTable中与数据库表的对应关系(datatable中的名字,数据库中的名字)
bulkCope.ColumnMappings.Add("TelZone", "TelZone");
bulkCope.WriteToServer(table);
}

TimeSpan ts = DateTime.Now - startTime;//DateTime得到TimeSpan类型
MessageBox.Show(ts.ToString());
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐