Как вставить данные путем генерации первичного ключа автоматически - PullRequest
0 голосов
/ 08 ноября 2011

Я хочу вставить данные, генерирующие первичный ключ автоматически, я не знаю, как я могу его сгенерировать

Имеется 17 столбцов, в первом столбце содержится первичный ключ, второй столбец начинается с имени.

Я получаю сообщение об ошибке во время выполнения ExecuteNonQuery ().

Ошибка:

Количество значений запроса и полей назначения не совпадают.

Очевидно, я знаю, почему я получаю эту ошибку, потому что я вставляю данные для 16 столбцов не для 17, а

Я не знаю, как вставить команду путем генерации первичного ключа.

столбец первичного ключа - первый, а его имя - CustomerId.

Код, который я использую:

OleDbCommand cmd = new OleDbCommand("insert into realtimedata values('" + Name+ "','" + Symbol+ "','" + D + "','" + Green + "','" + GB + "','" + GS + "','" + GBIntraBuy + "','" + GBTR1Buy + "','" + GBTR2Buy + "','" + GBTR3Buy + "','" + GBIntraSell + "','" + GBTR1Sell + "','" + GBTR2Sell + "','" + GBTR3Sell + "','" + GRSTL + "','" + Red + "');", con);
OleDbCommand cmd1 = new OleDbCommand("select CustomerId from realtimedata where (SecSym='" + Symbol + "')order by CustomerId", con);
temp = 0;
try
{
    object count = cmd1.ExecuteScalar();
    if ((count == "") || (count == null) )
    {
        cmd.ExecuteNonQuery();
        if (temp > 0)
        {
            //MessageBox.Show("One Record Added");
        }
        else
        {
            // MessageBox.Show("Record not added");
        }
    }
}
catch
{
    // con.Close();
}

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 08 ноября 2011

Ваш оператор вставки должен быть более явным.Вам необходимо указать, какие поля получают какие значения.

"insert into realtimedata(column1, column2, ... ,columnN) values('" + Name+ "','" + Symbol+ "','" + D + "','" + Green + "','" + GB + "','" + GS + "','" + GBIntraBuy + "','" + GBTR1Buy + "','" + GBTR2Buy + "','" + GBTR3Buy + "','" + GBIntraSell + "','" + GBTR1Sell + "','" + GBTR2Sell + "','" + GBTR3Sell + "','" + GRSTL + "','" + Red + "');"
1 голос
/ 08 ноября 2011

В MsAccess откройте таблицу в режиме конструктора и сделайте первый столбец столбцом « AutoNum »

1 голос
/ 08 ноября 2011

На самом деле ошибки гласят, что

INSERT INTO (number of fields here)
VALUES (is not equal to number here)

Или не вставляйте первичный ключ, создайте его как AutoNumber

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...