0

我有一个有 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 列的行?

4

2 回答 2

4

您需要在查询中指定列名。

不指定它们意味着查询将尝试插入所有列,这就是它失败的原因。

INSERT INTO users_stocks
(UserName, StockSymbol, Company)
VALUES
(@user_name, @stock_symbol, @company)
于 2012-08-11T19:28:19.737 回答
2

更改您的 SqlCommand 以明确指定列。

SqlCommand cmd = new SqlCommand("INSERT INTO users_stocks ( user_name, symbol, company ) VALUES(" + "@user_name, @stock_symbol, @company)", connection);
于 2012-08-11T19:28:16.947 回答