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 に答える