namespace 批量插入方法測試
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}sql
//批量插入方法
public static void BulkToDB(DataTable dt)
{
string connectionString = System.Configuration.ConfigurationManager.AppSettings["SqlServerConnString"];
SqlConnection sqlConn = new SqlConnection(connectionString);
SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn);
bulkCopy.DestinationTableName = "Test";
bulkCopy.BatchSize = dt.Rows.Count;測試
try
{
sqlConn.Open();
if (dt != null && dt.Rows.Count != 0)
bulkCopy.WriteToServer(dt);
}
catch (Exception ex)
{
throw ex;
}
finally
{
sqlConn.Close();
if (bulkCopy != null)
bulkCopy.Close();
}
}spa
/// <summary>
/// 構建一個四列的數據表
/// </summary>
/// <returns></returns>
public static DataTable GetTableSchema()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[]{
new DataColumn("Id",typeof(int)),
new DataColumn("UserName",typeof(string)),
new DataColumn("Useame",typeof(string)),
new DataColumn("Pwd",typeof(string))});orm
return dt;
}string
private void button1_Click(object sender, EventArgs e)
{
DataTable dt = GetTableSchema(); //數據表
//把list裝入數據表中
for (int i = 0; i < Getlist().Count; i++)
{
DataRow r = dt.NewRow();
r[0] = Getlist()[i].Id;
r[1]= Getlist()[i].Name;
//r[2] = Getlist()[i].Age;
r[3] = Getlist()[i].Sex;
dt.Rows.Add(r);
}
BulkToDB(dt);
MessageBox.Show("測試成功");it
}io
/// <summary>
/// 列表中有四條數據都是2,4,6,8
/// </summary>
/// <returns></returns>
public static List<tst> Getlist()
{
List<tst> tt = new List<tst>();
for (int i = 0; i < 4; i++)
{
tt.Add(new tst("2", "4", "6", "8"));
}
return tt;
}class
}
}
SqlBulkCopy使用使用用於自定義表類型做爲存儲過程參數,批量寫入數據。object