Как вставить запись с первичным ключом в MS Access базы данных C # - PullRequest
1 голос
/ 09 ноября 2011

Я использую следующую команду для вставки записи в базу данных MS Access:

OleDbCommand cmd = new OleDbCommand("insert into Table1 values('" + Name + "','" +
Symbol + "','" + D + "','" + Red + "','" + RedBuy + "','" + RedSell + "','" + 
SBIntraBuy + "','" + SBTR1Buy + "','" + SBTR2Buy + "','" + SBTR3Buy + "','" + 
SBIntraSell + "','" + SBTR1Sell + "','" + SBTR2Sell + "','" + SBTR3Sell + "','" + RSTL
+ "','" + Green + "');", con);

Я хочу добавить столбец перед именем с именем CustomerId с первичным ключом. Я не знаю, как вставить его с первичным ключом. Что я должен добавить в моей команде для первичного ключа?

Буду очень признателен, если кто-нибудь сможет мне помочь.

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

Проверьте эту ссылку для скриншота макета таблицы.

1 Ответ

4 голосов
/ 09 ноября 2011

Если ваш ключ имеет автоинкремент, то вам не нужно.База данных сделает это за вас.Если ваш ключ не имеет автоинкремента, рассмотрите возможность его изменения.Это действительно аккуратно!

Также, пожалуйста, рассмотрите возможность использования привязки вместо построения полного запроса вставки.

Предположим, следующая таблица:

Table1
PK (auto_increment)
Name
Symbol

То, что вы хотите сделать, это:

OleDbCommand cmd = new OleDbCommand("insert into Table1 (Name,Symbol) values (?,?)");
cmd.Parameters.Add(new OleDbParameter("@Name",Name));
cmd.Parameters.Add(new OleDbParameter("@Symbol",Symbol));

или (безопаснее):

OleDbCommand cmd = new OleDbCommand("insert into Table1 (Name,Symbol) values (@Name,@Symbol)");
cmd.Parameters.Add(new OleDbParameter("@Name",Name));
cmd.Parameters.Add(new OleDbParameter("@Symbol",Symbol));

И наконец:

cmd.ExecuteNonQuery();
...