我有一个非常简单的UPDATE
语句,它可以正常工作但只能 一次调用。我在数据库中有很少的项目(FAI),我想改变负责人。
如果我想更改两个或更多责任人,则只会更改上一个项目的负责人。我没有任何错误消息。所有值都正确发送到更新查询,但查询不会将其发送到数据库。
public void updateFaiUBazu(string orderNumber, FAI fai, int serialNumber)
{
konekcija.Open();
MessageBox.Show(fai.Reviewer);
komanda = new SqlCommand("
update FAI set
AircraftFK = @AircraftFK, GlassFK = @GlassFK, PartNumber = @PartNumber,
SerialNumber = @SerialNumber, ReportNumber = @ReportNumber,
Reviewer = @Reviewer, Comment = @Comment, DateTime = @DateTime,
Iges = @Iges, IgesName = @IgesName, Status = @Status
where
AircraftFK = " + fai.AircraftFK1 +
" and GlassFK = " + fai.GlassFK1 +
" and SerialNumber = " + serialNumber,
konekcija);
try
{
komanda.Parameters.Clear();
komanda.Parameters.AddWithValue("@AircraftFK", fai.AircraftFK1);
komanda.Parameters.AddWithValue("@GlassFK", fai.GlassFK1);
// komanda.Parameters.AddWithValue("@OrderNumberFK", fai[i].OrderNumerFK);
komanda.Parameters.AddWithValue("@PartNumber", fai.PartNumber);
komanda.Parameters.AddWithValue("@SerialNumber", fai.SerialNumber);
komanda.Parameters.AddWithValue("@ReportNumber", fai.ReportNumber);
komanda.Parameters.AddWithValue("@Reviewer", fai.Reviewer);
komanda.Parameters.AddWithValue("@Comment", fai.Comment);
komanda.Parameters.Add("@DateTime", fai.DateAndTime);
if (fai.IgesFile.Length != 0)
{
komanda.Parameters.AddWithValue("@Iges", fai.IgesFile);
}
else
{
komanda.Parameters.Add("@Iges", SqlDbType.VarBinary, -1);
komanda.Parameters["@Iges"].Value = DBNull.Value;
}
if (string.IsNullOrEmpty(fai.IgesName))
{
komanda.Parameters.Add("@IgesName", fai.IgesName).Value = DBNull.Value;
}
else
{
komanda.Parameters.AddWithValue("@IgesName", fai.IgesName);
}
komanda.Parameters.AddWithValue("@Status", "Not Tested");
komanda.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
konekcija.Close();
}
这可能是SqlServer更新语句的一些限制吗?
答案 0 :(得分:0)
按照几个步骤来解决您的问题。