A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  string dataDir = AppDomain.CurrentDomain.BaseDirectory;
            if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release\"))
            {
                dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
                AppDomain.CurrentDomain.SetData("Datadirectory", dataDir);
            }

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

6 个回复

倒序浏览
如果不加这段代码,运行的时候改变的是Bin下的Debug下的数据库文件,而不是你现在编辑的数据库文件。
Datadirectory变量对应你在app.config下的连接数据库字符串。
通过这段代码改变了,改变了Datadirectory所代表的意义,把您要操作的数据库位置,改成了你现在运行的项目底下。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
刘玺 发表于 2012-6-26 13:36
如果不加这段代码,运行的时候改变的是Bin下的Debug下的数据库文件,而不是你现在编辑的数据库文件。
Datad ...

哦,似乎明白了那么一点点。。。。呵呵,谢谢!!
回复 使用道具 举报
   我看视频时候看了下帮助 觉得应该是下面这个意思  具体调用的那些方法 还不是很明白 ,你可以看Help Library.
  1. //定义 字符串dataDir 赋值为当前 程序运行的目录
  2. string dataDir = AppDomain.CurrentDomain.BaseDirectory;
  3. //判断这个目录是否在 bin目录下 (一般调试程序时候都会在Debug下运行)
  4. if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release\"))
  5. {
  6. //将我们建立的项目地址的赋值给dataDir
  7. dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
  8. //为应用程序域Datadirectory分配指定值,后面调用时候默认就不是调用Debug下的数据库了。
  9. AppDomain.CurrentDomain.SetData("Datadirectory", dataDir);
复制代码

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
默认情况下创建的数据库文件是在工程文件夹下的,而程序运行默认是在工程文件夹下的bin\debug或者bin\release文件夹下,所以需要用到神奇代码来查找数据库文件的路径所以倒数第二句意思是查找父目录的父目录中的数据库文件,并把路径赋给datadir

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
这段代码实在winfrom中才有用的,主要就是改变程序默认指向的数据库。没有那段代码你写的程序所跑的数据库是Bin下的Debug下的数据库文件,而不是你现在编辑的数据库文件,加了这段代码之后Datadirectory变量对应你在app.config下的连接数据库字符串,所有操作就是针对你想操作的数据库了。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
  string dataDir = AppDomain.CurrentDomain.BaseDirectory;//将当前程序运行的目录赋值给dataDir
   if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release\"))//判断该目录是否在 bin目录下的 Debug文件夹或者Release文件夹里面
   {
           dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;//将新建立的项目地址的赋给dataDir
            AppDomain.CurrentDomain.SetData("Datadirectory", dataDir);//为应用程序域Datadirectory分配指定值;
    }

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马