したがって、Excelファイルを取得してDBのテーブルに書き込むための次のコードがあります。
string target = Server.MapPath("~/Upload");
if (fupStation.HasFile)
{
fupStation.SaveAs(System.IO.Path.Combine(target, fupStation.FileName));
string connectionString = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", target + "\\" + fupStation.FileName); string query = String.Format("select * from [{0}$]", "Client Station Assignments");
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, connectionString);
DataSet dsStation = new DataSet();
dataAdapter.Fill(dsStation);
DataTable dtStation = new DataTable();
dtStation = dsStation.Tables[0];
gvOne.DataSource = dtStation;
gvOne.DataBind();
using (SqlBulkCopy s = new SqlBulkCopy(ConfigurationManager.ConnectionStrings["cnSQL"].ConnectionString))
{
s.DestinationTableName = "StationImport";
s.NotifyAfter = 100;
s.WriteToServer(dtStation);
s.Close();
}
}
だからここに問題があります。ファイルを読み取り、Datatableに正常にデータを入力します(グリッドにデータを入力することで証明されます)。SQLBulkCopyコードが呼び出されていることはわかっていますが、最終的にはエラーは発生しませんが、テーブルには何も表示されません。
誰かがこれを前に通り抜けましたか?BulkCopyを使用する(そしてファイルを読み取るのも)のはこれが初めてなので、何か間違ったことをしていても驚かないでしょう。
ありがとう