读书人

access数据库插入方法报错,该怎么解决

发布时间: 2013-07-08 14:13:00 作者: rapoo

access数据库插入方法报错


public class AccessDB
{
public enum HandleFlag { Insert, Delete, Update };
//private String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
// " Data Source= " + AppDomain.CurrentDomain.BaseDirectory +
// "\\Resources\\PrivateFinance.accdb";
private OleDbConnection connection = null;
private OleDbCommand command = null;
int num = 0;

public AccessDB()
{ }

//增加access数据库的路径的构造函数
private OleDbConnection BuildAccessDB(String Uri)
{
#region 打开连接,操纵数据库
String connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
" Data Source= " + Uri + "Resources\\PrivateFinance.accdb";
connection = new OleDbConnection(connectionString);
try
{
connection.Open();
}
catch (Exception e)
{


Console.WriteLine(e.Message);
}
return connection;
#endregion

}

public void DBInsert(String str,String uri)
#region 插入数据
{
connection = BuildAccessDB(uri);
command = new OleDbCommand(str, connection);
num = command.ExecuteNonQuery();
}
#endregion
}

access insert?into
[解决办法]
这个代码问题严重啊,数据连接都没有关闭。具体的异常信息是什么呢?
要么数据连接没成功打开,要么就是你的sql语句有错。自己查下。
[解决办法]
是不是连接字符出问题了。
String connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
" Data Source= " + Uri + "Resources\\PrivateFinance.accdb";

Uri后面是否有\\这个如果没有 Resources前面 加 \\Resources

String connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
" Data Source= " + Uri + "\\Resources\\PrivateFinance.accdb";



[解决办法]

引用:
各位我已经解决了该问题了。解决方法是 insert into [表名] …… 加上中括号就行了。只是不明白为什么要在代码的表名上加上[],因为我直接把没有中括号的语句在access上执行是可以执行的。

你用了系统用的名字了吧,别和系统抢名字用!

读书人网 >C#

热点推荐