Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 用C语言更新sqlserver数据库#_Asp.net_Sql_Sql Server_Sql Update - Fatal编程技术网

Asp.net 用C语言更新sqlserver数据库#

Asp.net 用C语言更新sqlserver数据库#,asp.net,sql,sql-server,sql-update,Asp.net,Sql,Sql Server,Sql Update,我在如何通过C#实现更新和SQL Server方面遇到了问题 这种情况是,用户可能希望更新系统中的产品,如果未选择图像,则保存图像路径的字段都为空 我检查了fileupload控件是否有要上载的文件,但是如果该控件没有文件,那么它应该运行更新查询来更新其余字段,而不是绑定到fileupload控件的字段 下面是该页面的隐藏代码 protected void FormView1_ItemUpdating(object sender, FormViewUpdateEventArgs e) {

我在如何通过C#实现更新和SQL Server方面遇到了问题

这种情况是,用户可能希望更新系统中的产品,如果未选择图像,则保存图像路径的字段都为空

我检查了fileupload控件是否有要上载的文件,但是如果该控件没有文件,那么它应该运行更新查询来更新其余字段,而不是绑定到fileupload控件的字段

下面是该页面的隐藏代码

protected void FormView1_ItemUpdating(object sender, FormViewUpdateEventArgs e)
{ 
  FileUpload FileUpload1 = (FileUpload)FormView1.FindControl("FileUpload3");
  FileUpload FileUpload2 = (FileUpload)FormView1.FindControl("FileUpload4");


  if (FileUpload1.HasFile)
  {
      string virtualFolder1 = "~/ProductArt/Thumb/";
      string physicalFolder1 = Server.MapPath(virtualFolder1);
      string oldkey = e.Keys["ItemID"].ToString();
      //string photopath1 = e.OldValues["ThumbPath"].ToString();
      string ext1 = System.IO.Path.GetExtension(FileUpload1.FileName);
      FileUpload1.SaveAs(System.IO.Path.Combine(physicalFolder1, oldkey + ext1));
      //e.Values["ThumbPath"] = photopath1 + ext1;
      e.NewValues["ThumbPath"] = virtualFolder1 + oldkey + ext1;
  }
  else
  {
      //throw new Exception("Error, no thumb file selected");
      SqlConnection connect = new SqlConnection("TTEConnectionString");
      connect.Open();
      SqlCommand cmdQuery = new SqlCommand(@"UPDATE Item SET ItemName='" + txtItemNameTextBox.Text + "', PublisherID='" + ddlPublisher.SelectedValue );
  }

  if (FileUpload2.HasFile)
  {
      string virtualFolder2 = "~/ProductArt/";
      string physicalFolder2 = Server.MapPath(virtualFolder2);
      string oldkey2 = e.Keys["ItemID"].ToString();
      //string photopath1 = e.OldValues["ThumbPath"].ToString();
      string ext2 = System.IO.Path.GetExtension(FileUpload2.FileName);
      FileUpload2.SaveAs(System.IO.Path.Combine(physicalFolder2, oldkey2 + ext2));
      //e.Values["ThumbPath"] = photopath1 + ext1;
      e.NewValues["PhotoPath"] = virtualFolder2 + oldkey2 + ext2;
  }
  else
  {
      throw new Exception("Error, no full box file selected");
  }
}
此外,每当我输入ASP文本框的ID时,它都会给出

名称xxxx在当前上下文中不存在


错误。

更新查询中缺少Where子句

您需要为没有值的字段传递null值。i、 e文件上传以db格式归档

您可以使用下面这样的查询,如果记录为null(从前端传递),它将使用现有值更新记录


我希望有帮助

UPDATE
没有
WHERE
子句hmmm虽然我一直得到“名称在当前上下文中不存在”错误,但我还是尝试构建查询。我一定错过了什么您不应该将SQL语句连接在一起-而是使用参数化查询来避免SQL注入我知道,但是当我尝试将列链接到ASPX页面中的值时,它会给出“名称在当前上下文中不存在”。请确保您的文本框与代码中的名称相同,并且具有runat=“server”
Update yourtable
set fileuploadfiled=isnull(@fileuploadfield,fileuploadfield),
--Remaining fileds to be updated
where id=@id