Исключение выдается при вставке данных в базу данных доступа с помощью команды «вставить в» - PullRequest
0 голосов
/ 02 июня 2019

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

Проблема возникает, когда я пытаюсь ввести данные в таблицу. Я получаю синтаксическую ошибку. Обычно это означает, что есть проблема с фактической командой, верно? Ну, я подумал об этом и создал новую базу данных, и еще один проект и получил команду инертных команд, работающих на эту. На данный момент, неделя попыток заставить его работать, я застрял и отчаянно нуждаюсь в помощи. Вот код, который я использую, чтобы попытаться добавить данные в таблицу.

try 
{
     Form1.DataBaseConnection.Open();
} 
catch (Exception E) 
{
     MessageBox.Show("!!ATTENTION!! - Error accessing database. Please restart the application. ::::" + E.ToString());    
     Form1.DataBaseConnection.Close(); 
}

OleDbCommand DataBaseAddEntry = new OleDbCommand();
DataBaseAddEntry.Connection = Form1.DataBaseConnection;

DataBaseAddEntry.CommandText = "insert into Shoe(Size, Type, Name) values('" + int.Parse(TxtBoxSize.Text) + "','" + TxtBoxType.Text + "','" + TxtBoxName.Text + "')";

DataBaseAddEntry.ExecuteNonQuery();

Form1.DataBaseConnection.Close();
RefreshDataGridView();

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

1 Ответ

1 голос
/ 02 июня 2019

Попробуйте удалить одинарные кавычки из значения для Размер , так как это выглядит как тип int.

DataBaseAddEntry.CommandText = "insert into Shoe([Size], [Type], [Name]) values(" + int.Parse(TxtBoxSize.Text) + ",'" + TxtBoxType.Text + "','" + TxtBoxName.Text + "')";

Кроме того, как следует из комментария, вы должны использовать параметризованный SQL и рассмотрите возможность наложения блока try на всю операцию базы данных, а не только на попытку открыть .

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