【发布时间】:2011-03-06 14:31:04
【问题描述】:
我有以下代码用于使用访问数据库
OleDbConnection con = new OleDbConnection(myproject.Properties.Settings.Default.myDBConnectionString);
con.Open();
OleDbCommand command = new OleDbCommand("INSERT INTO components (name) VALUES (@p_col1)", con);
command.Parameters.Add("@p_col1", OleDbType.VarChar).Value = "test row";
int rows = command.ExecuteNonQuery();
此时行值为 1,当我进行选择查询后,插入的行可用。当程序完成时,问题就出现了:在进一步的执行中,该行不再存在。
我已经尝试过交易
OleDbTransaction transaction = con.BeginTransaction();
command.Transaction = transaction;
transaction.Commit();
并以这种方式使用 DataSet 和 ADO
//... add row to dataset ...
OleDbDataAdapter sda = new OleDbDataAdapter("select * from components", con);
OleDbCommandBuilder cb = new OleDbCommandBuilder(sda);
sda.Update(ds.Components); //tried with ds.Components.AcceptChanges(); before and after this line
但在每种情况下我都有同样的问题,似乎插入查询不是在真实数据库中完成的。你知道为什么会这样吗???
提前致谢
【问题讨论】:
-
您确定您正在查看正确的数据库......?
-
那么在你用参数做INSERT语句后,数据在表中是可见的?
标签: c# ms-access ado.net insert oledb