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
}
accessinsert into
现在的问题是,我在调用DBInsert方法时,会报错。就是command.ExecuteNonQuery()执行不成功,但是我的sql语句是正确的。请问是这段代码是哪里写错了?先多谢各位了。
要么数据连接没成功打开,要么就是你的sql语句有错。自己查下。
1、数据连接的关闭方法我放在了另一个方法里。
2、sql语句我在access2007的查询界面中测试,是没有问题的。
3、现在我在找数据连接没有成功打开的问题。
异常信息如下:System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
Dll.AccessDB.DBInsert(String str, String uri)
System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
System.Type.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args)
DllTestProject.UnitTest1.TestMethod1()
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";
user 还有很多都是系统用的名字的!