【发布时间】:2013-12-03 13:51:46
【问题描述】:
(我的问题解决了。几乎每个人都说我必须删除 @OB_ID 并将其留给 SQL 来分配值。)
我想通过 C# 代码向 SQL 数据库中的表中插入一条新记录。主键是身份。如何让 Visual Studio 理解该列是标识,因此 SQL Server 必须设置该值。相关代码如下:
SqlConnection sqlc = new SqlConnection();
sqlc.ConnectionString = "Data Source=. ; Database=LDatabase; Integrated Security=true;";
SqlCommand cmd2 = new SqlCommand("INSERT INTO Order_Book VALUES(@OB_ID, @OB_Title, @OB_Author, @OB_TranslatedBy, @OB_Publisher)", sqlc);//@OB_ID is indentity primary key
cmd2.Parameters.AddWithValue("@OB_ID", );//What should I assign to it?
cmd2.Parameters.AddWithValue("@OB_Title", "%" + txtboxbook.Text + "%");
cmd2.Parameters.AddWithValue("@OB_Author", "%" + txtboxAuthor.Text + "%");
cmd2.Parameters.AddWithValue("@OB_TranslatedBy", "%" + txtboxTranslator.Text + "%");
cmd2.Parameters.AddWithValue("@OB_Publisher", "%" + txtboxPublisher.Text + "%");
sqlc.Open();
cmd2.ExecuteNonQuery();
sqlc.Close();
任何帮助将不胜感激。
【问题讨论】:
-
你不需要添加任何东西。删除
@OB_ID,SQL Server 将知道按顺序添加下一个键。 -
我这样做了。这是我收到的错误:“必须声明标量变量“@OB_ID””
-
从 SQL 命令文本中删除@OB_ID
-
正如@Steve 所说,您需要删除对它的所有引用。 SQL Server 会处理它。例如,请参阅我的答案。
-
附带说明一下,在 INSERT 语句中使用 % 通配符的目的是什么?
标签: c# asp.net sql-server ado.net