Access数据库中未插入数据
本文关键字:插入 数据 数据库 Access | 更新日期: 2023-09-27 18:28:30
我正在开发一个C#Windows应用程序。我已使用access数据库。当我从数据库中选择数据时,我会得到数据,但当插入数据时,它不会被插入,也不会显示任何错误。
但当我在Access中运行相同的插入查询时,它会被插入。这是我的代码:
public void connCheck()
{
try
{
cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|'Database'MyDatabase.mdb;Persist Security Info=True;Jet OLEDB:Database Password=2013");
if (cn.State == ConnectionState.Closed)
cn.Open();
}
catch (Exception exp)
{
MessageBox.Show(exp.ToString());
}
}
public bool ExecuteNonQuery()
{
try
{
connCheck();
string sqlQuery = "INSERT INTO tblResult(ExamSet,SetId,FullMarks,ObtainedMarks,MarksPercentage,ElapsedTime,LastQIndex,CreatedDate,Completed)
Values(1,27,'200.00',0,0,0,1,DATE(),'N')";
cmd.CommandType = CommandType.Text;
cmd.Connection = cn;
cmd.CommandText = sqlQuery;
cmd.ExecuteNonQuery();
return true;
}
catch(OleDbException ex)
{
ErrorMsg = ex.ToString();
return false;
}
finally
{
cn.Close();
cn.Dispose();
cmd.Dispose();
}
}
您没有定义cmd
添加该行
OledbCommand cmd=new OledbCommand();
如何替换像这样的查询代码
string sqlQuery = "INSERT INTO tblResult([ExamSet],[SetId],[FullMarks],[ObtainedMarks],[MarksPercentage],[ElapsedTime],[LastQIndex],[CreatedDate],[Completed])
Values(1,27,'200.00',0,0,0,1,DATE(),'N')";
更新:
其中一个问题可能是Security warning
禁用了内容。
试着看看这是否有效(转到MDB):
- 单击"外部数据"选项卡
- 应该有一个安全警告,说明"数据库中的某些内容已被禁用"
- 单击"选项"按钮
- 选择"启用此内容",然后单击"确定"按钮
尝试通过cmd进行参数化查询。参数。Add或AddRange。示例
var cmd = new SqlCommand("INSERT INTO tbl_name (a, b, c) VALUES (@a, @b, @c)");
cmd.Parameters.AddRange(new[] { new SqlParameter("@a", field1), new SqlParameter("@b", field2), new SqlParameter("@c", field2) });
(代表OP发布)。
感谢大家的帮助,我找到了解决方案。事实上,我的代码没有问题。问题是我在一个文件夹中创建了数据库文件。但当我构建项目时,它创建了一个重复的数据库,该数据库具有相同的文件夹,即bin文件夹中的文件名。
所以每次它被插入数据库时。我正在检入我创建的数据库文件。所以我认为它不起作用。