使用命令 "insert into" 将数据插入访问数据库时抛出异常
Exception thrown whilst inserting data into an access database using the command "insert into"
我正在为我目前正在上的大学课程做一个项目,我在尝试将数据从 Visual Studio 2017 年开发的应用程序插入数据库时遇到了一些问题。我已经已经连接到数据库并且能够从应用程序中打开它。
当我尝试将数据输入 table 时出现问题。我收到语法错误。通常这意味着实际命令有问题吗?好吧,我考虑了这个并创建了一个新数据库和另一个项目,并让惰性进入命令为那个工作。在这一点上,一个星期的努力让它发挥作用,我被困住了,迫切需要帮助。这是我用来尝试将数据添加到 table.
的代码
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();
顺便说一句,我没有设计或创建数据库。我必须在一个团队中工作,而数据库是由另一个成员创建的。因此,当我创建自己的数据库时,它运行良好。可能与实际数据库有关,而不是代码?
尝试从 Size 的值中删除单引号,因为这看起来应该是一个 int 类型。
DataBaseAddEntry.CommandText = "insert into Shoe([Size], [Type], [Name]) values(" + int.Parse(TxtBoxSize.Text) + ",'" + TxtBoxType.Text + "','" + TxtBoxName.Text + "')";
此外,正如评论所建议的,您应该使用 parameterized SQL 并考虑将 try 块包装在整个数据库操作中,而不仅仅是 open 的尝试。
我正在为我目前正在上的大学课程做一个项目,我在尝试将数据从 Visual Studio 2017 年开发的应用程序插入数据库时遇到了一些问题。我已经已经连接到数据库并且能够从应用程序中打开它。
当我尝试将数据输入 table 时出现问题。我收到语法错误。通常这意味着实际命令有问题吗?好吧,我考虑了这个并创建了一个新数据库和另一个项目,并让惰性进入命令为那个工作。在这一点上,一个星期的努力让它发挥作用,我被困住了,迫切需要帮助。这是我用来尝试将数据添加到 table.
的代码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();
顺便说一句,我没有设计或创建数据库。我必须在一个团队中工作,而数据库是由另一个成员创建的。因此,当我创建自己的数据库时,它运行良好。可能与实际数据库有关,而不是代码?
尝试从 Size 的值中删除单引号,因为这看起来应该是一个 int 类型。
DataBaseAddEntry.CommandText = "insert into Shoe([Size], [Type], [Name]) values(" + int.Parse(TxtBoxSize.Text) + ",'" + TxtBoxType.Text + "','" + TxtBoxName.Text + "')";
此外,正如评论所建议的,您应该使用 parameterized SQL 并考虑将 try 块包装在整个数据库操作中,而不仅仅是 open 的尝试。