我建立了一个Access数据库,但是每次执行的时候总是出现不能向数据库中插入记录的问题,请问该怎办呢?
(sql语句测试是正确的,权限问题我也解决了)
每次一执行,就会报错,我的哪个as.mdb文件旁边就多一个as.ldb文件,这样这个数据库一直就被锁住了,删也删不掉
请高手指点
(sql语句测试是正确的,权限问题我也解决了)
每次一执行,就会报错,我的哪个as.mdb文件旁边就多一个as.ldb文件,这样这个数据库一直就被锁住了,删也删不掉
请高手指点
cn.Close()
cn.Disposed();
cn=null;
总之释放所有用到的东西
.ldb 文件是个临时文件,只要打开.mdb文件就会自动生成一个.ldb文件,关闭.mdb文件之后,程序会自动删除.ldb文件的.
public void ExecuteNonSql(string sql)
{
con=new OleDbConnection(conStrings);
OleDbCommand cmd=new OleDbCommand(sql,con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
con.Dispose();
con=null;
}这是我的报错信息:
insert into bbs_user (username,realname,password,email,homepage,address,school,qq,sex,country,joindate,image,ipaddress,question,result,telephone,mobile) values ('7777777','7777777','7777777','7777777','7777777','7777777','7777777','7777777','男','7777777','2004-11-7 11:13:32','01.gif','127.0.0.1','77777777777777','7777777','7777777','7777777')INSERT INTO 语句的语法错误。
System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。 at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteNonQuery() at mybbs.AccessDB.ExecuteNonSql(String sql) in c:\inetpub\wwwroot\mybbs\idatabase.cs:line 84 at mybbs.register.Button1_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\mybbs\register.aspx.cs:line 83
为什么还是出错呢?
各位帮帮忙
我想最有可能的是,你在插入的时候,数据库正在被你打开着呢
和 Connection.Close()成对出现,或是把语句写道try...catch...finally块中,在finally中加Connection.Close();