見つけた投稿の例を使用しています。これは私がしていることにぴったりのようです。ファイルを保存するコードは次のとおりです。
[HttpPost]
public ActionResult FileUpload(HttpPostedFileBase excelFile)
{
//Save the uploaded file to the disc.
string savedFileName = "~/App_Data/uploads/";// +excelFile.FileName;
string filePath = Path.Combine(savedFileName, excelFile.FileName);
excelFile.SaveAs(Server.MapPath(filePath));
return View();
}
データをデータベーステーブルに配置するコードは次のとおりです。
private void SaveFileToDatabase(string savedFileName)
{
String strConnection = "Data Source=.\\SQLEXPRESS;AttachDbFilename='catalog=QQAEntities'Integrated Security=SSPI;User Instance=True";
String connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 12.0;", Server.MapPath(savedFileName));
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
using (OleDbCommand cmd = new OleDbCommand("SELECT * FROM [dbo_ts_quality_audit_tbl$]", connection))
{
connection.Open();
using (OleDbDataReader dReader = cmd.ExecuteReader())
{
using (SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection))
{
//Give your Destination table name
sqlBulk.DestinationTableName = "AuditSchedules";
sqlBulk.WriteToServer(dReader);
}
}
}
}
}
}
private string GetLocalFilePath(string saveDirectory, FileUpload fileUploadControl)
{
//System.Web.UI.WebControls.WebControl
string filePath = Path.Combine(saveDirectory, fileUploadControl.FileName);
fileUploadControl.SaveAs(filePath);
return filePath;
}
FileUploadのビューは次のとおりです。
<h2>FileUpload</h2>
@using (Html.BeginForm("FileUpload", "Admin", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" id="excelFile" name="excelFile" />
<input type="submit" value="Upload" />
}
アップロードは機能します。私の質問は; ビューでデータ転送()を呼び出すにはどうすればよいSaveFileToDatabase
ですか?これはすべて管理セクションから行われます。
また、構成内のデータベースへの接続がすでにあります-これをクリーンアップするにはどうすればよいですか?
ありがとう