有些东西起作用了,然后坏了!数据库中充满了数据。一切正常。Get_Kod_Zakaz 查询返回 null,查询在 SQL 中工作。
private void Load_Form(object sender, EventArgs e)
{
SqlConnection conK = Util.ConnectBD.Get_KDB();
SqlParameter Kod_Sotr = new SqlParameter("@Kod_S", Proxy.Author_Class.Get_Kod_Sotr());
SqlCommand Insert_Zakaz = new SqlCommand("INSERT INTO Zakaz (Status, Kod_Sotr) values (5, @Kod_S)", conK);
Insert_Zakaz.Parameters.Add(Kod_Sotr);
SqlCommand Get_Kod_Zakaz = new SqlCommand("SELECT SCOPE_IDENTITY()", conK);
Insert_Zakaz.ExecuteNonQuery();
kod_z = Convert.ToInt32(Get_Kod_Zakaz.ExecuteScalar());
//при запуске добавлять запись в таблицу заказов
}
好吧,从视觉上看,一切似乎都是正确的。
检查给定表是否有类型为 的列
IDENTITY
。我可以禁用标识符。在此行中的值必须包含' ' 值('5' , '@Kod_S')"
感谢大家的回应!IDENT_CURRENT('table_name')的使用帮助解决了这个问题。
从网上了解到,使用SCOPE_IDENTITY()的时候会出现问题,因为 此函数从所有表中获取 id。可能还有其他我不知道的过程正在进行。虽然,一切似乎都正常,并且在执行此方法时数据库不应该有任何其他操作。
如果您有兴趣,可以阅读:https ://docs.microsoft.com/ru-ru/sql/t-sql/functions/scope-identity-transact-sql?view=sql-server-ver15