如何插入包含autoincrement列的行

时间:2012-08-11 19:26:24

标签: c# sql-server

我有一个包含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列的行添加到?

2 个答案:

答案 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);