请教两个C#和access的问题。

jlalways 2014-11-21 06:26:39
1.建立了个form,连接access数据库,实现用户登录功能,第一次正确。由于其他机器的microsoft.net.framework版本为4.0,我的为4.5.2,为了避免麻烦,我重新建立windows应用窗体,选择了net.framework4.0。后面的步骤前一次一样,除了数据库文件存放目录变成中文名称的文件夹,结果在运行时出错,提示类似未安装microsoft.ace.oledb.12.0的一段话,具体不记得了。
2.第二次仍选择framework4.5.2,在主窗体制作时,为了方便,直接将第一次成功运行的主窗体mainform粘过去,结果在编辑登录窗体按钮事件时,在mainform提示是否缺少using,但我在解决方案栏看到mainform.cs等文件确实被粘过去了。
我是小白,因为最近工作需要才学了下,不知上面是什么问题,求解释下,谢谢!
...全文
127 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wind_cloud2011 2014-11-21
  • 打赏
  • 举报
回复
jlalways 2014-11-21
  • 打赏
  • 举报
回复
引用 14 楼 wind_cloud2011 的回复:
如果做成通用,就将数据连接串放app.config中,或XML配置文件中都可,
好高端啊,我这也就是工作才开始学下,所以什么都不会。能遇到你这样的高手真好,自己看书也看不出来什么。 谢谢了,到时候有什么不懂了,再请教你了。
wind_cloud2011 2014-11-21
  • 打赏
  • 举报
回复
如果做成通用,就将数据连接串放app.config中,或XML配置文件中都可,
jlalways 2014-11-21
  • 打赏
  • 举报
回复
引用 11 楼 wind_cloud2011 的回复:
你的数据库文件最后放在当前目录下,这样整个目录复制过去就没问题, System.Windows.Forms.Application.StartupPath就是对应debug目录
哦,我试试,谢谢了~~
wind_cloud2011 2014-11-21
  • 打赏
  • 举报
回复
如果数据库目录可以随意,那就用配置文件,数据库路径放在配置文件里就可,
wind_cloud2011 2014-11-21
  • 打赏
  • 举报
回复
你的数据库文件最后放在当前目录下,这样整个目录复制过去就没问题, System.Windows.Forms.Application.StartupPath就是对应debug目录
jlalways 2014-11-21
  • 打赏
  • 举报
回复
引用 7 楼 wind_cloud2011 的回复:
重新建立窗体,复制关键的代码,如果复制mainformdesign.cs和有mainform里的,会出错的
我的想法就是能不能像是EXCEL里面引用数据,既可以用相对位置的数据,又可以用绝对位置的数据。不知到C#调用access数据库文件时候能不能调用相对位置。因为我到时候把程序给对方时候,对面安装有access,但是可能没有安装visual studio,那样就不方便更改路径。
jlalways 2014-11-21
  • 打赏
  • 举报
回复
引用 7 楼 wind_cloud2011 的回复:
重新建立窗体,复制关键的代码,如果复制mainformdesign.cs和有mainform里的,会出错的
哦,谢谢。 还想请教下,我这边制作的程序怎么能够保证复制给别人也可以用了?现在我把文件夹复制到别的电脑,但是会提示access数据库的文件accdb的路径不是有效路径。不知道有没有可以什么代码,设置路径后,复制到别人电脑,不用更改别人也可以用的方法?
wind_cloud2011 2014-11-21
  • 打赏
  • 举报
回复
读取access string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Windows.Forms.Application.StartupPath + "\\temp.mdb"; OleDbConnection conn = new OleDbConnection(strConn); string strsel = ""; DataSet ds = new DataSet(); strsel = "select * from test"; OleDbDataAdapter da = new OleDbDataAdapter(strsel, strConn); da.Fill(ds); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string s1 = ds.Tables[0].Rows[i][0].ToString() + " " + ds.Tables[0].Rows[i][1].ToString(); }
wind_cloud2011 2014-11-21
  • 打赏
  • 举报
回复
重新建立窗体,复制关键的代码,如果复制mainformdesign.cs和有mainform里的,会出错的
jlalways 2014-11-21
  • 打赏
  • 举报
回复
引用 3 楼 wind_cloud2011 的回复:
http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe 安装这个试试
谢谢回复啊。 因为开始第一次可以正常运行的,所以我不确定是不是这个问题,最后我又在默认的Microsoft.net.framework4.5.1下面建立form ,可以正常运行。我看了下我电脑的程序列表,我的是Microsoft.net.framework4.5.1,所以,我怀疑是不是不能选择和电脑不符合的framework版本。
jlalways 2014-11-21
  • 打赏
  • 举报
回复
引用 2 楼 wind_cloud2011 的回复:
你复制哪些内容?复制连接数据库的代码就可,不要复制全部
这个因为我要编写主窗口,所以就把mainform.cs粘了过去,好像不行。后面把mainformdesign.cs和有mainform的名字的都粘了过去也不行。最后没办法只有重新建了。 我想问下,如果我需要mainform窗体的东西,应该添加那个文件。
jlalways 2014-11-21
  • 打赏
  • 举报
回复
引用 1 楼 moonwrite 的回复:
百度:未安装microsoft.ace.oledb.12.0 缺乏using 就using需要的命名空间,缺陷程序集的话 就添加程序集
首先,谢谢回复了。 可是我前面编了个就可以使用啊。
wind_cloud2011 2014-11-21
  • 打赏
  • 举报
回复
http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe 安装这个试试
wind_cloud2011 2014-11-21
  • 打赏
  • 举报
回复
你复制哪些内容?复制连接数据库的代码就可,不要复制全部
moonwrite 2014-11-21
  • 打赏
  • 举报
回复
百度:未安装microsoft.ace.oledb.12.0 缺乏using 就using需要的命名空间,缺陷程序集的话 就添加程序集

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧