【发布时间】:2016-05-13 05:28:14
【问题描述】:
我有一个工单管理应用程序,我被要求添加一个新功能,他们想要一种附加文档、pdf、图像等的方法
<asp:TemplateField HeaderText="Attach">
<InsertItemTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" AllowMultiple="True" />
<asp:Button ID="Upload" runat="server" Text="Upload" OnClick="Upload_Click" />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Name" HeaderText="File Name" />
</Columns>
</asp:GridView>
</InsertItemTemplate>
</asp:TemplateField>
我使用了文件上传
现在我希望仅在用户单击提交时将附件插入数据库,所以我在想是否有办法在用户单击上传按钮时将附件从详细信息视图插入到数据表中,那么我可以将该数据表绑定到gridview,当用户单击提交时,我希望它被插入到数据库中?
我的代码在后面
protected void Upload_Click(object sender, EventArgs e)
{
FileUpload file1 = (FileUpload)DetailsView1.FindControl("FileUpload1");
foreach (HttpPostedFile postedFile in file1.PostedFiles)
{
string filename = Path.GetFileName(postedFile.FileName);
using (Stream fs = postedFile.InputStream)
{
using (BinaryReader br = new BinaryReader(fs))
{
byte[] bytes = br.ReadBytes((Int32)fs.Length);
string constr = ConfigurationManager.ConnectionStrings["WorkOrderConnectionString3"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
DataTable table = CreateDatatable();
table.Rows.Add()
string query = "insert into tblFiles values (@Name, @Data)";
using (SqlCommand cmd = new SqlCommand(query))
{
cmd.Connection = con;
cmd.Parameters.AddWithValue("@Name", filename);
cmd.Parameters.AddWithValue("@Data", bytes);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
}
}
Response.Redirect(Request.Url.AbsoluteUri);
}
正如您在上面看到的,我想插入 datatable detailsview.findcontrol("fileupload1") 值,而不是插入表格。
任何建议将不胜感激...
【问题讨论】:
标签: c# asp.net sql-server datatable detailsview