Saya menggunakan objek SqlBulkCopy untuk menulis datatable ke dalam tabel server sql. Namun, setiap kali saya memeriksa ulang database saya, database saya tetap utuh dan tidak ada perubahan. A
Saya telah mencoba melakukan pencarian Google untuk menentukan masalah saya tetapi saya tidak dapat menyelesaikannya.
Datatable berasal dari file .xls.
public static DataTable dt = new DataTable();
private void ExportToGrid(String path, String filen)
{
int idx = filen.IndexOf(".");
string tf = filen.Remove(idx, 4);
OleDbConnection MyConnection = null;
DataSet DtSet = null;
OleDbDataAdapter MyCommand = null;
MyConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source='" + path + "';Extended Properties=Excel 8.0;");
ArrayList TblName = new ArrayList();
MyConnection.Open();
DataTable schemaTable = MyConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
foreach (DataRow row in schemaTable.Rows)
{
TblName.Add(row["TABLE_NAME"]);
}
MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [" + TblName[0].ToString() + "]", MyConnection);
DtSet = new System.Data.DataSet();
MyCommand.Fill(DtSet);
MyCommand.FillSchema(DtSet, SchemaType.Source);
DataTable dt = new DataTable();
dt = DtSet.Tables[0];
Session["dt"] = dt;
int x = dt.Rows.Count;
MyConnection.Close();
if (dt.Rows.Count > 0)
{
theGridView.DataSource = dt;
theGridView.DataBind();
}
if (System.IO.File.Exists(path))
{
System.IO.File.Delete(path);
}
}
Ini adalah fungsi penulis saya
private void StartImport()
{
string servername = server;
string database = database;
string tbl = "dbo.LinkDb";
Stopwatch sw = new Stopwatch();
sw.Start();
SqlBulkCopy bulkCopy = new SqlBulkCopy("Data Source=" + servername + ";Initial Catalog=" + database + ";Integrated Security=SSPI", SqlBulkCopyOptions.TableLock);
bulkCopy.DestinationTableName = tbl;
bulkCopy.WriteToServer(dt);
sw.Stop();
lblResult.Visible = true;
lblResult.Text = (sw.ElapsedMilliseconds / 1000.00).ToString();
}
Di bawah ini adalah tangkapan layar tabel yang disimpan di server sql saya. Saya yakinkan Anda bahwa saya telah mematuhi aturan Peka Huruf Besar-kecil.
Tidak ada pengecualian yang dilempar dan waktu rata-rata yang berlalu adalah 0,018 - 0,020 detik
Hargai bantuan apa pun.
Terima kasih
dt
pada saat Anda meneleponWriteToServer
? apakah kolomnya cocok? (namun, yang terakhir harus terwujud dalam pengecualian daripada tidak melakukan apa pun) - person Marc Gravell   schedule 08.02.2012