C# 如何在不上载文件的情况下更新表单
我想用文本框和文件更新表单,但当我尝试更新时,我也必须更新我想要的文件,如果我没有选择asp.net中可以更新的文件C# 如何在不上载文件的情况下更新表单,c#,asp.net,ado,C#,Asp.net,Ado,我想用文本框和文件更新表单,但当我尝试更新时,我也必须更新我想要的文件,如果我没有选择asp.net中可以更新的文件 FileInfo fi = new FileInfo(FileUpload1.FileName); byte[] DocumentContent = FileUpload1.FileBytes; string name = fi.Name; string extn = fi.Extension; using (SqlConnection cn = new SqlConn
FileInfo fi = new FileInfo(FileUpload1.FileName);
byte[] DocumentContent = FileUpload1.FileBytes;
string name = fi.Name;
string extn = fi.Extension;
using (SqlConnection cn = new SqlConnection(@" server = DESKTOP-IJCGFFC ; initial catalog = gaf_application ; integrated security =true"))
{
SqlCommand cmd = new SqlCommand("ModifierFournisseur", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@nom", SqlDbType.VarChar).Value = name;
cmd.Parameters.Add("@ContentDoc", SqlDbType.VarBinary).Value = DocumentContent
cmd.Parameters.Add("@extDoc", SqlDbType.VarChar).Value = extn;
cmd.Parameters.Add("@Ref_fourn", SqlDbType.VarChar).Value = DropDownList1.SelectedValue;
cmd.Parameters.Add("@Adress", SqlDbType.VarChar).Value = TextBox2.Text;
cmd.Parameters.Add("@Article_rat", SqlDbType.VarChar).Value = TextBox3.Text;
cmd.Parameters.Add("@Prix_achat", SqlDbType.Float).Value = TextBox4.Text;
cmd.Parameters.Add("@date_fac", SqlDbType.Date).Value = TextBox5.Text;
cn.Open();
lblmsg.Visible = true;
lblmsg.Text = "la modification bien fait!";
cmd.ExecuteNonQuery();
DropDownList1.SelectedIndex = 0;
TextBox2.Text = "";
TextBox3.Text = "";
TextBox4.Text = "";
TextBox5.Text = "";
}
我可以更新一个文件这是您需要做的
string name = string.Empty;
string extn = string.Empty;
if (FileUpload1.HasFile)
{
FileInfo fi = new FileInfo(FileUpload1.FileName);
byte[] DocumentContent = FileUpload1.FileBytes;
name = fi.Name;
extn = fi.Extension;
}
只需在表单中添加复选框,然后根据复选框的选中值上载(或不上载):
if(chkUpload.Checked)
{
//复选框已选中,因此上载文件
}
//无论是否选中该复选框,都要更新数据库。
这是一个比我的答案更好的答案+1.尽管我总是选中FileUpload.HasFile
,因为如果您在没有它的情况下运行该代码,那么当代码的其余部分尝试上载不存在的文件时,您将得到ArgumentNullException或其他东西