.NET ขอคำแนะนำหรือตัวอย่างการ Loop for insert data เข้าฐานข้อมูลด้วยครับ
ตอนนี้ผมใช้ linq แล้วครับ
สร้างวนลูปสร้าง object แล้วสั่ง submit ทีเดียว
โดยจะตัดข้อมูลส่งไปทีละ 1000 เพื่อลดภาระของ sql server
แล้วก็สามารถรายงานสถานะการทำงานว่าทำได้กี่เปอร์เซ็นต์แล้วด้วย progressbar
ตัวอย่างประมาณนี้
DbContent db = new DbContent("...connection string...");
for (int i=0; i < 1000; i++)
{
MyTable data = new MyTable();
data.xxx = i;
db.MyTable.InsertOnSubmit(data);
}
db.SubmitChange;
ส่วนแต่ก่อนใช้ sqlcommand ธรรมดาร่วมกับ dataadapter
เพื่อที่จะเอาการ batch insert ครั้งเดียวได้ทีละหลายๆ เรคคอร์ด
ตัวอย่างประมาณนี้
DataTable Dt = new DataTable();
Dt.Columns.Add(new DataColumn("xxx", typeof(int)));
for (int i=0; i < 1000; i++)
{
DataRow DrNew = Dt.NewRow();
DrNew["xxx"] = i;
Dt.Rows.Add(DrNew);
}
SqlConnection sqlConnection = new SqlConnection("...connection string...");
SqlCommand sqlCommand = new SqlCommand("Insert Into [MyTable] ([xxx]) Values (@xxx)", sqlConnection);
sqlCommand.Parameters.Add("@xxx", SqlDbType.Int, 4, "xxx");
SqlDataAdapter sqlAdapter = new SqlDataAdapter();
sqlAdapter.InsertCommand = sqlCommand;
sqlAdapter.Update(DataSource);
Date :
2012-07-24 15:31:59
By :
อิอิ
เขียนผิดนิดหน่อย
ตรงบรรทัดสุดท้าย
Code (C#)
sqlAdapter.Update(DataSource);
เปลี่ยนเป็น
Code (C#)
sqlAdapter.Update(Dt);
Date :
2012-07-24 15:34:01
By :
อิอิ
อยากจะกด Like ให้จริง ๆ เลยครับ ขอบคุณมากครับ จะจดจำไว้พิจารณา ส่วนท่านอื่น ๆ มีทริคดี ๆ แนะนำมาเยอะ ๆ นะครับแบ่งปันความรู้
Date :
2012-07-24 15:52:30
By :
treza
Load balance : Server 05