現時点では、クライアントがサーバー上のディレクトリにファイルをアップロードし、サーバーがそのファイル (csv ファイル) を使用して SQL データベースを更新できるのは不思議でした。
それがサーバーがそのファイルを使用できる唯一の方法ですか? 最初にサーバーにアップロードするには?または、サーバーのディレクトリにアップロードせずにそのファイルを使用できますか?
(Visual Studio 2012、C#、asp.net を使用)
コードの更新---
asp ファイルのアップロード。(コードはよりきれいに、よりよく書くことができることはわかっていますが、私のテスト コードは決してきれいではありません)
//Uplod file to the server
FileUpload1.SaveAs(serverUploadDir + FileUpload1.FileName);
//Use the Uploaded File to update the sql table
dbConn.UploadCSVToSql(serverUploadDir + FileUpload1.FileName);
UploadCSVToSql
public void UploadCSVToSql(string filepath)
{
//string filepath = "C:\\Copy of ABI Employee List.csv";
StreamReader sr = new StreamReader(filepath);
string line = sr.ReadLine();
string[] value = line.Split(',');
DataTable dt = new DataTable();
DataRow row;
foreach (string dc in value)
{
dt.Columns.Add(new DataColumn(dc));
}
while (!sr.EndOfStream)
{
value = sr.ReadLine().Split(',');
if (value.Length == dt.Columns.Count)
{
row = dt.NewRow();
row.ItemArray = value;
dt.Rows.Add(row);
}
}
SqlBulkCopy bc = new SqlBulkCopy(conn.ConnectionString, SqlBulkCopyOptions.TableLock);
bc.DestinationTableName = "MainDump";
bc.BatchSize = dt.Rows.Count;
conn.Open();
bc.WriteToServer(dt);
bc.Close();
conn.Close();