关于access的insert into问题

问题描述

在对access数据表进行insertinto插入后再吧关闭程序的情况下对该表进行查询可以看到insert进去的那条记录,但是将程序关闭重启后insert进行的那条记录又没有了,感觉是在程序insert的时候在内存中执行成功了,但是并没有insert到硬盘中的文件中去。这是什么原因啊。

解决方案

解决方案二:
没插进到access数据表里,不会吧?
解决方案三:
不会的,可能是你的access有缓存,所以没有察觉到插入的新纪录,
解决方案四:
应该不会吧,楼主再检查一下哈~~
解决方案五:
检查过了确定,代码如下:classDBUtil{privatestaticstringstrConn=ConfigurationManager.ConnectionStrings["EPMS.Properties.Settings.EPMSConnectionString"].ConnectionString.ToString();publicstaticOleDbConnectionGetConn(){OleDbConnectionoledbConn=newOleDbConnection(strConn);try{if(oledbConn.State.Equals(ConnectionState.Closed)){oledbConn.Open();}}catch(Exceptionex){oledbConn.Close();oledbConn.Dispose();oledbConn=null;MessageBox.Show(ex.Message);}returnoledbConn;}publicstaticOleDbCommandGetCmd(stringsql,OleDbConnectionoledbConn){if(oledbConn==null)returnnull;OleDbCommandoledbCmd=oledbConn.CreateCommand();oledbCmd.CommandText=sql;returnoledbCmd;}publicstaticOleDbDataReaderGetReader(stringsql,OleDbConnectionoledbConn){if(oledbConn==null)returnnull;OleDbCommandoledbCmd=GetCmd(sql,oledbConn);OleDbTransactionoledbTran=null;OleDbDataReaderoledbReader=null;try{oledbTran=oledbConn.BeginTransaction();oledbCmd.Transaction=oledbTran;oledbReader=oledbCmd.ExecuteReader();oledbCmd.Transaction.Commit();//oledbTran.Commit();}catch(Exceptionex){try{//Attempttorollbackthetransaction.oledbTran.Rollback();}catch(Exceptionex2){//Donothinghere;transactionisnotactive.}oledbReader.Close();oledbConn.Close();//关闭与数据库的连接MessageBox.Show(ex.Message);}finally{oledbCmd.Dispose();}returnoledbReader;}publicstaticboolUpdate(stringsql,OleDbConnectionoledbConn){if(oledbConn==null)returnfalse;OleDbCommandoledbCmd=GetCmd(sql,oledbConn);OleDbTransactionoledbTran=null;boolresult=true;try{oledbTran=oledbConn.BeginTransaction();oledbCmd.Transaction=oledbTran;oledbCmd.ExecuteNonQuery();//执行SQL语句oledbTran.Commit();}catch(Exceptionex){try{//Attempttorollbackthetransaction.oledbTran.Rollback();}catch(Exceptionex2){//Donothinghere;transactionisnotactive.}//oledbConn.Close();result=false;MessageBox.Show(ex.Message);}finally{oledbCmd.Dispose();//释放所有空间oledbConn.Close();//调用con_close()方法,关闭与数据库的连接}returnresult;}publicstaticboolUpdates(string[]sqls,OleDbConnectionoledbConn){if(oledbConn==null)returnfalse;OleDbCommandoledbCmd=oledbConn.CreateCommand();OleDbTransactionoledbTran=null;oledbCmd.Transaction=oledbTran;boolresult=true;try{oledbTran=oledbConn.BeginTransaction();oledbCmd.Transaction=oledbTran;for(inti=0;i<sqls.Length;i++){oledbCmd.CommandText=sqls[i];oledbCmd.ExecuteNonQuery();}oledbTran.Commit();}catch(Exceptionex){//Attempttorollbackthetransaction.try{oledbTran.Rollback();}catch(Exceptionex2){Console.WriteLine("RollbackExceptionType:{0}",ex2.GetType());Console.WriteLine("Message:{0}",ex2.Message);}result=false;}finally{oledbCmd.Dispose();//释放所有空间oledbConn.Close();//关闭与数据库的连接}returnresult;}publicstaticDataSetGetDataSet(stringsql,stringtableName,OleDbConnectionoledbConn){if(oledbConn==null)returnnull;OleDbDataAdapteroledbDa=newOleDbDataAdapter(sql,oledbConn);//创建一个SqlDataAdapter对象,并获取指定数据表的信息DataSetds=newDataSet();//创建DataSet对象oledbDa.Fill(ds,tableName);//通过SqlDataAdapter对象的Fill()方法,将数据表信息添加到DataSet对象中oledbConn.Close();//关闭数据库的连接returnds;//返回DataSet对象的信息}}事件privatevoidbtnSave_Click(objectsender,EventArgse){stringsql="insertintotb_Material(MaterialName,Specification,Unit,Amount,Remark)values('"+txtMaterialName.Text.Trim()+"','"+txtSpecification.Text.Trim()+"','"+txtUnit.Text.Trim()+"',0,'"+txtRemark.Text.Trim()+"')";//MessageBox.Show(sql);if(EPMS.DataClass.DBUtil.Update(sql,EPMS.DataClass.DBUtil.GetConn()))MessageBox.Show("保存成功。");sql="Updatetb_Material(MaterialName='"+txtMaterialName.Text.Trim()+"',Specification='"+txtSpecification.Text.Trim()+"',Unit='"+txtUnit.Text.Trim()+"',Amount=0,Remark='"+txtRemark.Text.Trim()+"')";}
解决方案六:
在对access数据表进行insertinto插入后,不关闭程序的情况下对该表进行查询可以看到insert进去的那条记录,但是将程序关闭重启后insert进行的那条记录又没有了,感觉是在程序insert的时候在内存中执行成功了,但是并没有insert到硬盘中的文件中去。这是什么原因啊。
解决方案七:
引用5楼wh0826的回复:

在对access数据表进行insertinto插入后,不关闭程序的情况下对该表进行查询可以看到insert进去的那条记录,但是将程序关闭重启后insert进行的那条记录又没有了,感觉是在程序insert的时候在内存中执行成功了,但是并没有insert到硬盘中的文件中去。这是什么原因啊。

检查一下你是不是那个Access文件有2份,其实你已经插入数据,但是你查看的是另一个access数据库而已。
解决方案八:
看看你的链接字符串配置,可能是你调试的时候连到app_data里的数据库了(ASP.net自动搞得)了,但你关了程序后看得是硬盘实际位置把硬盘里的access文件也放到app_data就行,或者在Webconfig中该配置,好像是appSettings这个
解决方案九:
我在打开的时候会生成已个“EPMS.ldb”文件,是这个原因啊?

时间: 2024-09-19 22:55:47

关于access的insert into问题的相关文章

access数据库-C#连接Access数据库insert操作时,debug目录下临时数据库修改了,但是原数据库不变。

问题描述 C#连接Access数据库insert操作时,debug目录下临时数据库修改了,但是原数据库不变. 尝试把accdb放在debug文件下下过,但是我导入时它自动就会在项目文件夹里复制过去一个数据库文件.insert操作时,显示插入的信息是成功的,并且当时可以搜索到该数据,但重新运行程序后,以前的数据未被保存. App.config < ?xml version="1.0" encoding="utf-8" ?> < configurati

关于access,为什么提示“[Microsoft][ODBC Microsoft Access 驱动程序] INSERT INTO 语句的语法错误。”

问题描述 各位大哥大姐,请大家帮帮我解决一下问题,谢谢!以下是我的工程,运行后老是报[Microsoft][ODBC Microsoft Access 驱动程序] INSERT INTO 语句的语法错误.是怎么回事?package access;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public

关于asp.net 连接access数据库insert刷新问题 涉及到gridview

问题描述 这个问题就是,页面里有个gridview,一个button按钮,点击button后执行数据插入,就是把新数据插入到数据库中,而gridview是绑定这个数据库的,点击插入后,需要刷新页面才能看到gridview里面的跟新,如何弄可以插入后能立即自动刷新gridview呢更详细说明:就是页面里有个webbutton控件和一个gridview控件gridview绑定了一个access数据库,设名字为"accessdata"现在点击button按钮后执行数据插入,把新数据写入acc

asp+access sql insert into select表复制

这里是把一个同的数据一次性保存到另一个表,用的是sql insert into  select另一张同结构的新表 sub append() call opendb() dim zsql,zdysql zsql="insert into zdgz select title,s_name,user_from,image,content,send_date,isture from zdy "  conn.execute(zsql)  if err=0 then   response.writ

ACCESS insert的问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

问题描述 为什么我的Access数据里有三列它还暴错那 类型也都是文本的InsertINTOzxxw(title,Content,Time)Values('a','a','aaaaa')我要是去掉一列他就好使 解决方案 解决方案二:time是关键字....你把它该成mytime解决方案三:谢谢你大哥哈哈明天加分解决方案四:Time改为[Time].遇到关键字,就要两边加方括号.解决方案五:UP解决方案六:引用3楼cat_hsfz的回复: Time改为[Time].遇到关键字,就要两边加方括号.

Access数据库多条数据Insert

当下Access数据库可能要被遗忘了!比较这个轻量级数据库被精简了许多功能,个人感觉用起来还是挺麻烦的!当前Access在企业项目中就是一块鸡肋.数据量小使用SQL Server是浪费,既然选择了Access就别抱怨了!如果用好了还是一块宝!废话不多说了,今天就来探讨下如何向Access中插入多条数据把!       由于在此之前我没有用过Access数据库的,当需要想数据库中插入多条数据时,我们不妨先按照sql server的做法:"insert into tablename(column1,

access-数据库中添加数据出错,提示Insert into语句错误

问题描述 数据库中添加数据出错,提示Insert into语句错误 String sql="insert into T_EMPLOYER(NAME,SEX,NUMBER) VALUES(?,?,?)"; PreparedStatement ps=conn.prepareStatement(sql); //ps.setString(1,id); ps.setString(1, name); ps.setString(2, sex); ps.setString(3,number); 上面写

Mssql,Access的sql经典SQL语句大全_数据库其它

下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE) DML-数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL-数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建 数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份

ADO如何使用Insert语法

Insert可以使一个表新增一个或多个记录:INSERT INTO:新增一个记录.INSERT INTO-SELECT:新增多个记录.一.INSERT INTO新增一个记录的INSERT INTO语法如下:INSERT INTO 表 [(字段1[,字段2[, ...]])]VALUES (值1[,值2[, ...]) 新增的记录,将依照指定字段排列的顺序插入对应的值,譬如值1将被插入至字段1,值2将被插入至字段2,依此类推. 若未指定 (字段1[,字段2[, ...]]) ,将依照表所定义的字段