【发布时间】:2026-01-30 16:00:02
【问题描述】:
我正在尝试使用新值更新 varbinary(max) 列,该值也是 varbinary(max) 最终结果是我得到了一个新行而不是更新该行。
Sql
CREATE proc Proc_UpdateFile
@FileName varchar(50),
@OldFileName varchar(50),
@GuidNo varchar(50),
@Img varbinary(max)
as
update tbl_BazImages set ImgName=@FileName , img = @Img where GuidNo=@GuidNo and ImgName=@OldFileName
代码隐藏:
public bool UpdateFile(Byte[] bytes, string filename, string guidno,string OldFileName)
{
SqlConnection con = new SqlConnection(claims_expense);
SqlCommand cmd = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter();
cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "Proc_UpdateFile";
cmd.Parameters.AddWithValue("@GuidNo", guidno);
cmd.Parameters.AddWithValue("@FileName", filename);
cmd.Parameters.AddWithValue("@Img", bytes);
cmd.Parameters.AddWithValue("@OldFileName", OldFileName);
try
{
con.Open();
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
eLog.WriteErrorLog(ex, "dboperation.cs", "UpdateFile");
return false;
}
finally { con.Close(); }
return true;
}
【问题讨论】:
-
它没有。你看到了什么让你认为它是?
-
也许该表上有一个更新触发器插入了一个新行。
-
没有触发器。但仍然更新,插入新行。
-
@Arbaaz 绝对不在您提供的程序中。所以,看看别处吧。
-
@DenisValeev 我已经包含了我的代码隐藏。
标签: asp.net sql sql-server tsql