使用命令“插入”

时间:2019-06-02 18:53:26

标签: c# visual-studio ms-access oledbcommand oledbexception

我正在为我当前正在上的大学课程开发项目,但是尝试从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 个答案:

答案 0 :(得分:1)

请尝试从 Size 的值中删除单引号,因为它看起来应该是int类型。

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

此外,正如评论所建议的那样,您应该使用parameterized SQL并考虑将try块包装在整个数据库操作中,而不仅仅是尝试打开