0

C# を使用して更新および SQL Server を実装するために何を実装する必要があるかについて問題があります。

ユーザーがシステム内の製品を更新する必要があり、画像が選択されていない場合、画像パスを保持するフィールドはすべて NULL です。

ファイルアップロードコントロールにアップロードするファイルがあるかどうかを確認しましたが、コントロールにファイルがない場合は、更新クエリを実行して、ファイルアップロードコントロールに関連付けられているフィールドではなく、残りのフィールドを更新する必要があります。

以下は、ページのコードビハインドです。

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 は現在のコンテキストに存在しません

エラー。

4

1 に答える 1

0

更新クエリに Where 句がありません。

値がないフィールドには null 値を渡す必要があります。つまり、データベースにファイルされたファイルアップロード。

null の場合 (フロントエンドから渡される)、既存の値でレコードを更新する以下のようなクエリを作成できます。

Update yourtable
set fileuploadfiled=isnull(@fileuploadfield,fileuploadfield),
--Remaining fileds to be updated
where id=@id

それが役立つことを願っています!

于 2013-05-09T05:57:33.713 に答える