【发布时间】:2014-03-01 14:43:11
【问题描述】:
我在 ASP.NET 中有一个小问题。我试图在列中获取 MAX 数,然后将其递增 1。 像这样的例子:
SqlConnection con= new SqlConnection(ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString);
con.Open();
string db = "instert into FJ(C1, C2, C3) values (@c1 , @c2 ,@c3)";
SqlCommand com = new SqlCommand(db, con);
com.Parameters.AddWithValue("@c1", TextBox1.Text);
com.Parameters.AddWithValue("@c2", com .CommandText = "declare @a float set @a = (select MAX(C2) from FJ)+1 INSERT INTO [FJ]([C2]) VALUES (@a)");
com.Parameters.AddWithValue("@c3", TextBox3.Text);
com.ExecuteNonQuery();
con.Close();
C2 列增加 1 但其他列为空。如果我评论 C2 行 TextBox1 和 3 被添加到数据库中。 有什么问题?
附注我不允许编辑数据库。我需要用 ASP.NET 代码来实现。
【问题讨论】:
-
为什么不在数据库中直接定义一个IDENTITY列?
-
因为我不允许编辑数据库。我需要在 ASP.NET 代码中制作它。这是我的主管告诉我的。 ://
-
问题在于,在并发(多个并发使用)的情况下,如果不由数据库管理,这可能很容易失败。正确工作的正确工具 - 如果不允许您更改数据库,请与可以的人合作。
-
但是有什么方法可以在不使其他列为 NULL 的情况下增加一吗?
-
在表格设计中 - 使列成为自动递增的 IDENTITY 列。
标签: c# asp.net sql sql-server