string cmdStr = "INSERT INTO Names(ID,FirstName) VALUES(@ID,@FirstName)";
试过[]没有帮助可以帮助我吗?
访问2007
答案 0 :(得分:1)
问题是:string cmdStr =“INSERT INTO学生(ID,FirstName,City)VALUES(@ ID,@ FirstName,@ City)”工作正常
这就是问题,你的表有3列,但可能没有City
的默认值,如果你不告诉它要放入City
的内容,它不知道并且会失败。
您必须始终指定城市或编辑表格定义以包含默认值City
。
答案 1 :(得分:0)
假设您使用正确的模式来处理参数,查询应该可以正常工作。
var conn = new SqlConnection(connStr);
conn.Open();
var cmd = new SqlCommand(cmdStr, conn);
cmd.Parameters.AddWithValue("@ID", id);
cmd.Parameters.AddWithValue("@FirstName", firstName);
如果ID列标记为标识列,则可能存在一个问题。在这种情况下,您必须暂时启用身份插入:
var cmdStr = @"SET IDENTITY_INSERT Names ON; " +
@"INSERT INTO Names(ID,FirstName) VALUES(@ID,@FirstName); " +
@"SET IDENTITY_INSERT Names OFF;"
或者,如上所述,如果您的列不可为空,那么您当然必须包含一个值。
在任何情况下抛出SqlException或OleDbException都应该告诉你到底出了什么问题。
答案 2 :(得分:0)
string cmdStr =" INSERT INTO Names(ID,FirstName)VALUES(1001,' Siya')"工作
在运行插入到学生中的其他插入语句之前,可能会帮助您分析代码中的操作。