数据未插入 Access 数据库 [关闭]
Posted
技术标签:
【中文标题】数据未插入 Access 数据库 [关闭]【英文标题】:Data not get inserted in Access database [closed] 【发布时间】:2013-08-22 05:36:09 【问题描述】:我正在开发一个 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();
【问题讨论】:
如果您发布 sqlQuery 的内容可能会有所帮助 我已在代码中添加了我的查询,请检查。 给出断点并检查您缺少的地方... 我也试过了,但没有出现任何错误,似乎没有任何问题。 @Raghubar 如果您可以发布您的解决方案,这将对其他人有所帮助 【参考方案1】:你没有定义你的 cmd.. 添加这一行
OledbCommand cmd=new OledbCommand();
【讨论】:
我试过不行... 我认为访问安全有问题..【参考方案2】:这样替换你的查询代码怎么样
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):
-
点击“外部数据”标签
应该有一个安全警告,指出“数据库中的某些内容已被禁用”
点击“选项”按钮
选择“启用此内容”并单击“确定”按钮
【讨论】:
感谢您的建议,但它不起作用。 我试过不行。【参考方案3】:尝试通过 cmd.Parameters.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) );
【讨论】:
【参考方案4】:(代表 OP 发布).
感谢大家的帮助,我得到了解决方案。实际上我的代码没有问题。问题是我在文件夹中创建了数据库文件。但是当我构建项目时,它在 bin 文件夹中创建了一个具有相同文件夹和文件名的重复数据库。
所以每次它被插入到那个数据库中。我正在检查我创建的数据库文件。所以我认为它不起作用。
【讨论】:
以上是关于数据未插入 Access 数据库 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
从 MS Access 批量导入并插入 Sql Server [关闭]
由于“SQL 语法”错误,无法插入 MS Access [关闭]