• 强类型的数据集,在处理以直接附加方式的SQLServer的MDF文件时无法更新数据原因分析


    在给我的学生做演示3层架构开发的时候,我用vs2005的WinForm方式,建立DAL,BLL及UI3层架构,在DAL层采用强类型的数据集,BLL层处理逻辑. 程序运行起来后对于TableAdapter的Update,Insert,Delete等操作都能生效,然后我观察那个MDF文件,居然数据没有更新. 关闭WinForm重启WinForm,发现所作的修改只是影响到了强类型的数据集,而数据集最终没有反应到MDF文件上面.而TableAdapter的方法调用返回值表明我的方法是成功的!
    环境:
    1.在Project下面建立了App_Data目录,然后放置MDF文件,直接双击MDF文件采用AttachDbFileName的方式挂接MDF到SQLServer Express;
    2.添加新项DataSet,然后拖动1中的表到DataSet生成强类型的数据集,进而构建DAL层的TableAdapter方法集合及BLL层,完成系统.


    调试发现:每次我运行WinForm,系统都会拷贝Project下和源代码cs文件同一目录级别的App_Code目录到bin目录下面,然后连接了bin目录下的mdf文件.
    这样我每次运行都会覆盖bin\App_Code\*.mdf文件,自然我无法修改,真是郁闷!

    将mdf文件直接挂接到SQLServer,修改settings文件以SQLServer方式连接而非mdf文件方式,程序正常!

    如果不去调试,发布的时候直接拷贝bin目录下面的东西,估计就没有问题了. 或者我们可以考虑将App_Code目录放到bin下,而不是跟cs源代码文件同一目录级别. 产生这个原因是因为我考虑我在asp.net下面没有问题而沿袭到了winform. 细想这也是自然,链接组非常内部的 database=|DataDirectory|\*.mdf在webform内代表当前路径,而在winform里面确是bin目录了.
    所以一定要小心了.哈哈

  • 相关阅读:
    编程命名规范
    python 字符串编解码介绍
    django之sqlite3常见错误
    asp.net请求过程文章推荐
    python 多线程的文章
    工作中处理文本的python代码片段
    memcached一些知识
    咱计算机专业的人,能不能不那么特别地彰显对语文的无知?——再谈面向对象...
    你真的了解分层架构吗?——写给被PetShop"毒害"的朋友们...
    混蛋的面试题——《大话设计模式》读后感
  • 原文地址:https://www.cnblogs.com/flaaash/p/1037477.html
Copyright © 2020-2023  润新知