[求助]Access数据库访问与openfiledialog

问题描述

环境:VS2010,ACCESS2010,WIN7问题:用C#开放一个软件,两个功能,一个是ACCESS数据库访问,一个是用openFileDialog对话框选取文件。在软件运行时,如果先执行openFileDialog,则没有问题,数据库访问正常,以后再执行openFileDialog也没问题,但是,如果先执行数据库访问,再执行openFileDialog时,在OpenFileDialog1.ShowDialog(this)这句就会出错,或者文件浏览对话框无响应。报错信息是:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。OpenFileDialogopenFileDialog1=newOpenFileDialog();openFileDialog1.InitialDirectory=Application.StartupPath;if(OpenFileDialog1.ShowDialog(this)==DialogResult.OK){textBox1.Text=OpenFileDialog1.FileName;}代码也很简单,这个问题已经折磨了我很久了,请大家帮忙解决下。在网上也搜了半天,也有人遇到了同样的问题,但没有发现有效的解决方案。

解决方案

解决方案二:
up顶一下,期待牛人
解决方案三:
我连的sql2008我试了下没有问题啊你的代码OpenFileDialogopenFileDialog1=newOpenFileDialog();openFileDialog1.InitialDirectory=Application.StartupPath;if(OpenFileDialog1.ShowDialog(this)==DialogResult.OK){textBox1.Text=OpenFileDialog1.FileName;}OpenFileDialog1中首字母应该是小写openFileDialog1
解决方案四:
if(OpenFileDialog1.ShowDialog(this)==DialogResult.OK)==》if(openFileDialog1.ShowDialog(this)==DialogResult.OK)openFileDialog1是变量
解决方案五:
没有大小写问题,为了清爽,重新写一下,如果是大小写就简单多了另外,我记得之前连过MySQL,Oracle都没有问题,就这次连Access出这个问题环境:VS2010,ACCESS2010,WIN7问题:用C#开放一个软件,两个功能,一个是ACCESS数据库访问,一个是用openFileDialog对话框选取文件。在软件运行时,如果先执行openFileDialog,则没有问题,数据库访问正常,以后再执行openFileDialog也没问题,但是,如果先执行数据库访问,再执行openFileDialog时,在ShowDialog(this)这句就会出错,或者文件浏览对话框无响应。报错信息是:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。OpenFileDialogdlg=newOpenFileDialog();dlg.InitialDirectory=Application.StartupPath;if(dlg.ShowDialog(this)==DialogResult.OK){textBox1.Text=dlg.FileName;}代码也很简单,这个问题已经折磨了我很久了,请大家帮忙解决下。在网上也搜了半天,也有人遇到了同样的问题,但没有发现有效的解决方案。
解决方案六:
using(OpenFileDialogdlgText=newOpenFileDialog()){dlgText.Filter=@"(*.txt)|*.txt";if(dlgText.ShowDialog()==DialogResult.OK){if(File.Exists(dlgText.FileName)){StreamReaderrStream=newStreamReader(dlgText.FileName,System.Text.Encoding.Default);strings=default(string);this.textBox1.Text="";while((s=rStream.ReadLine())!=null){this.textBox1.Text+=s;}rStream.Close();}}}

解决方案七:
为了让大家更直观的看出问题,我做了一个工程,大家帮忙看看,只要顺序点三次以上访问数据库和浏览就会出问题尝试读取或写入受保护的内存。这通常指示其他内存已损坏。帮忙看看应该能够下载
解决方案八:
前两次是正常的第三次就会报错
解决方案九:
我测试了没有问题环境win8VS2013
解决方案十:
引用8楼bujanbusan的回复:

我测试了没有问题环境win8VS2013

上图证明
解决方案十一:
为什么我的会出错?在WIN7+VS2005也测试了,也有问题。先点访问数据库,交叉点几次就报错
解决方案十二:
还有,要先点访问数据库,如果先点浏览文件,以后就没有问题。先点访问数据库,再点浏览文件,交叉几次就出错了
解决方案十三:
没问题呀,VS2008下+WIN7正常。
解决方案十四:
这个论坛怎么这么不好用,传个图片一晚上传不上来,太崩溃了。楼上几位,多谢了,不知道你们测试的时候,多点几次会报错吗?要先点访问数据库,后点浏览文件,多点几次。。我测试了一下,基本上点十几次肯定会报错,图片发不上来。。。。麻烦再看看,再帮我测测我的这个问题和下面几个很类似,只是没有从他们的帖子里面找到有效的解决方案http://bbs.csdn.net/topics/390358491https://social.msdn.microsoft.com/Forums/zh-CN/c58d1135-fe6f-4f53-8263-b8fa6e8e3747/oledbaccessopenfiledialog
解决方案十五:
VS补丁打了没?
解决方案:
为什么非要show(this)直接show不就完了
解决方案:
show也一样,也出错。装的是VS2010旗舰版,没有打补丁。大家继续帮我看看啊。。。
解决方案:
引用14楼wyd1520的回复:

VS补丁打了没?

您试我的那个工程没,是不是也报错?
解决方案:
数据库打开后没关闭吧,被占用了!
解决方案:
已经用conn.Close();conn.Dispose();关闭了
解决方案:
实在不行试试重装access吧
解决方案:
重装还是不行啊。。。这是为什么呢??难道大家这么用都不会出错?
解决方案:
继续顶,需求解决问题的良方
解决方案:
我也遇到过这个问题。你打开的文件或数据库还处于打开状态或者没有完全退出。
解决方案:
如果报错不报错跟执行的先后有关系,那么100%是你代码逻辑有问题你的OpenFileDialog的作用是选取Access文件吗??
解决方案:
哥来给你解决,最近我也遇到这个问题,纠结了2天了,今天总算找到了~"Provider=Microsoft.ACE.OLEDB.12.0;DataSource=C:DbTestTest.accdb;OLEDBServices=-1"在连接后面加上一个这个(OLEDBServices=-1)还是看的歪果仁的~http://www.codeproject.com/Answers/275226/OpenFileDialog-plus-OleDbConnection-equals-AccessV#answer8这个8楼~

时间: 2024-09-15 20:40:37

[求助]Access数据库访问与openfiledialog的相关文章

ACCESS数据库访问组件(二)

access|访问|数据|数据库 ACCESS数据库访问组件(二)ACCESS_Table.cs using System; namespace XLang.VideoOnline.Framework.Database.Access{ /// <summary> /// Summary description for ACCESS_DataTable. /// </summary> public class DataTable:System.Data.DataTable { pri

ACCESS数据库访问组件(一)

access|访问|数据|数据库 ACCESS数据库访问组件(一)ACCESS_Database.cs using System;using System.Data;using System.Data.OleDb;using System.Collections; namespace XLang.VideoOnline.Framework.Database.Access{ /// <summary> /// XLang.VideoOnline.Framework.Database is des

ACCESS数据库访问的类

大部分ASP应用,都离不开对数据库的访问及操作,所以,对于数据库部分的访问操作,我们应该单独抽象出来,封装成一个单独的类.如果所用语言支持继承,可以封装一个这样的类,然后在数据操作层继承即可.下面是我写的一个ACCESS数据库访问的类,针对ACCESS作了优化,不过因为缺少足够的应用测试,可能仍然存在未知的bug及应用限制,主要代码如下: <% Class Oledb Private IDataPath Private IConnectionString Private Conn Private

Access数据库访问助手类

using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.OleDb; using System.Collections; namespace TaoBaoSyncLibrary.Dal { /// <summary> /// Access数据库访问助手类 /// </summary> public class DBHelper_Ac

ACCESS数据库访问组件(三)

access|访问|数据|数据库 using System;using System.Data;using System.Data.OleDb;using System.Collections; namespace XLang.VideoOnline.Framework.Database.Access{ /// <summary> /// Summary description for ACCESS_DataTablesCollection. /// </summary> publ

ACCESS数据库访问组件(四)

access|访问|数据|数据库 using System;using System.Data;using System.Data.OleDb;using System.Collections; namespace XLang.VideoOnline.Framework.Database.Access{ /// <summary> /// Summary description for ACCESS_DataViewsCollection. /// </summary> publi

access-[求助] ACCESS数据库里数字与文本的关系求助

问题描述 [求助] ACCESS数据库里数字与文本的关系求助 一个匪夷所思的问题若把数据据库中danganbianhao字段设置成数字型这个检测是否重复的代码就一致提示无重复但是的确有重复的只要把这个字段设置成文本格式立马就能检测到重复这是为什么啊求大神指点并更正.谢谢代码如下: <%Response.Buffer = True Response.ExpiresAbsolute = Now() - 1 Response.Expires = 0 Response.CacheControl = &quo

Access数据库的迁移问题探究

  因为业务信息系统软件之前设计的为Access数据库架构,经过一段时间的运营管理,发现Access数据库越来越不能支撑业务系统的运行管理.因此,考虑更换数据库. 抛弃Access数据库,首选MySQL数据库.MySQL虽体积小,但是功能够用,存储速度快,基本能满足升级改造的要求.从Access数据库迁移到MySQL数据库,通常要做哪些事. (1)迁移Access表到MySQL数据库中 对照Access数据库表,在MySQL数据库中建立同样一张表.之后,将Access数据表内容迁移到MySQL数

使用SQLite数据库和Access数据库的一些经验总结

在我的<Winform开发框架>中,可使用多种数据库作为程序的数据源,除了常规的Oracle数据库.SqlServer.MySql数据库,其中还包括了SQLite数据库.Access数据库,后两个数据库都是在单机版程序中常用到的数据库,各自有着自己的特点,在我的<Winform开发框架>的提炼和多个项目的反复使用过程中,对SQLite数据库.Access数据库的一些特点进行了一些总结,以期达到常用常新,避免走弯路的目的. 1.简化数据库的地址,使用|DataDirectory|代替