我有一个widnows表单应用程序,我无法保存数据库中的应用程序(文本框)中的数据(ms访问)。存储的数据可以在应用程序中看到,但是如果我打开数据库就不存在...所以如果我打开数据库并重新启动表单应用程序,我看不到之前插入的数据。
string conString = "Provider=Microsoft.Jet.OLEDB.4.0;" + " Data Source=save.mdb"; OleDbConnection empConnection = new OleDbConnection(conString); string insertStatement = "INSERT INTO zivila " + "([naziv]) " + "VALUES (@naziv)"; OleDbCommand insertCommand = new OleDbCommand(insertStatement, empConnection); insertCommand.Parameters.Add("@naziv", OleDbType.Char).Value = textBox1.Text; try { empConnection.Open(); int count = insertCommand.ExecuteNonQuery(); empConnection.Close(); } catch (OleDbException ex) { MessageBox.Show(ex.Message); } finally { textBox1.Clear();
答案 0 :(得分:4)
我认为你错过了一个方括号]
答案 1 :(得分:0)
OleDb似乎不支持命名参数。
来自here:
OLE DB.NET框架数据提供程序使用标有问号(?)而不是命名参数的位置参数。
这可能会让你得到你想要的东西:
string insertStatement = "INSERT INTO zivila ([naziv]) VALUES (?)";
// snip
insertCommand.Parameters.Add("@p1", OleDbType.Char, 255).Value = textBox1.Text;
答案 2 :(得分:0)
确保您正在查看正确的数据库:如果您的数据库是解决方案的一部分,它将被复制到bin文件夹,而build文件夹中的数据库将被更新。
我同意@tomfanning,Access不支持命名参数,而应使用问号。