我有一个包含4列的表格:
id, user_name, symbol, company.
id
列是主键,它具有autoIncrement
属性。
我想在表格中添加一条记录,我使用:
try
{
connection.Open();
SqlCommand cmd = new SqlCommand("INSERT INTO users_stocks VALUES(" +
"@user_name, @stock_symbol, @company)", connection);
cmd.Parameters.AddWithValue("@user_name", user_name);
cmd.Parameters.AddWithValue("@stock_symbol", stock_symbol);
cmd.Parameters.AddWithValue("@company", company);
int rows = cmd.ExecuteNonQuery();
connection.Close();
//rows number of record got inserted
}
catch (SqlException ex)
{
//Log exception
connection.Close();
}
但它给了我例外(我有4列,我只在这里指定3)。
如何将带有autoIncrement列的行添加到?
答案 0 :(得分:4)
您需要在查询中指定列名称。
不指定它们意味着查询将尝试插入所有列,这就是它失败的原因。
INSERT INTO users_stocks
(UserName, StockSymbol, Company)
VALUES
(@user_name, @stock_symbol, @company)
答案 1 :(得分:2)
更改您的SqlCommand以明确指定列。
SqlCommand cmd = new SqlCommand("INSERT INTO users_stocks ( user_name, symbol, company ) VALUES(" + "@user_name, @stock_symbol, @company)", connection);