Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用命令“insert into”将数据插入access数据库时引发异常_C#_Visual Studio_Ms Access_Oledbcommand_Oledbexception - Fatal编程技术网

C# 使用命令“insert into”将数据插入access数据库时引发异常

C# 使用命令“insert into”将数据插入access数据库时引发异常,c#,visual-studio,ms-access,oledbcommand,oledbexception,C#,Visual Studio,Ms Access,Oledbcommand,Oledbexception,我正在为我目前正在上的一门大学课程做一个项目,我在尝试从Visual Studio 2017开发的应用程序将数据插入数据库时遇到了一些问题。我已经连接到数据库,并且能够从应用程序打开它 当我尝试向表中输入数据时,问题就出现了。我得到一个语法错误。通常这意味着实际命令有问题,对吗?我考虑过这个问题,创建了一个新的数据库和另一个项目,并让惰性命令为该数据库工作。在这一点上,一个星期的努力让它工作,我陷入困境,迫切需要帮助。下面是我用来尝试向表中添加数据的代码 try { Form1.Da

我正在为我目前正在上的一门大学课程做一个项目,我在尝试从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();

另一方面,我没有设计或创建数据库。我必须在一个团队中工作,数据库是由另一名成员创建的。因此,当我创建自己的数据库时,它运行良好。这可能与实际数据库有关,而不是与代码有关吗?

尝试从大小值中删除单引号,因为这看起来应该是一个int类型

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

此外,正如注释所建议的,您应该使用并考虑将尝试块封装在整个数据库操作上,而不仅尝试打开.

大小是MS访问中的保留关键字,还需要在其周围设置方括号。但在创建sql命令时,您确实需要更改此代码并使用参数谢谢!这个应用程序现在正在做它应该做的事情。我确实有一个try-catch块围绕着我试图向数据库添加一个条目的部分,但我删除了它,希望能收到更多关于错误的信息。我还将研究参数化SQL