创建上载表单+使用ASP.NET将数据插入数据库

时间:2013-06-27 15:10:31

标签: asp.net sql razor

我正在尝试创建一个简单的表单,用户可以在其中输入个人详细信息并上传文件。然后将用户的详细信息插入到数据库中,并将文件上载到特定文件夹;我已经让两个人分开工作,但我希望他们同时工作,理想情况下使用相同的“提交”按钮和/或POST请求。

到目前为止,这是一个整洁的代码版本:

@using Microsoft.Web.Helpers;

<form method="POST">
    <input type="text" id="name" name="name" />

    @FileUpload.GetHtml(
        initialNumberOfFiles:1,
        allowMoreFilesToBeAdded:false,
        includeFormTag:true,
        uploadText:"Upload")               
</form>


if(IsPost) {
  var n = Request.Form["name"];

  var fileSavePath = "";
  var uploadedFile = Request.Files[0];
  string file = "afilename";

  fileType = Path.GetExtension(uploadedFile.FileName);    
  fileName = file + fileType;

  fileSavePath = Server.MapPath("~/Folder/" + fileName);
  uploadedFile.SaveAs(fileSavePath);

  using(SqlConnection con = new SqlConnection("server=.\\SQLEXPRESS;database=mydb;user id=user;password=pass;"))
  {
    string insert = "INSERT INTO Items VALUES ('" + file + "','" + n + "')";

    con.Open();
    using(SqlCommand cmd = new SqlCommand(insert,con))
    {
      SqlDataReader reader = cmd.ExecuteReader(); 
    } 
  }
}

我遇到的问题是在帖子上请求表单值:

string insert = "INSERT INTO Items VALUES ('" + fileName + "','" + n + "')";

在上面一行中,变量'fileName'被插入到数据库ok中,而'n'被返回空白,因此该行变为:

string insert = "INSERT INTO Items VALUES ('afilename.jpg','')";

是否可以使用此方法实现我的目标?

1 个答案:

答案 0 :(得分:2)

尝试将表单标记更改为:

<form method="post" enctype="multipart/form-data">