强类型的数据集,在处理以直接附加方式的SQLServer的MDF文件时无法更新数据-原因分析
2008-01-13 23:09
676 查看
在给我的学生做演示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目录了.
所以一定要小心了.哈哈
环境:
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目录了.
所以一定要小心了.哈哈
相关文章推荐
- 从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常
- 为什么一般数据恢复软件恢复的MDF文件无法附加
- 使用OLEDB方式读取Excel文件到DataTable中数据类型的处理
- 从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常
- 从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常
- 附加数据库报错:无法打开物理文件 XXX.mdf",操作系统错误 5:"5(拒绝访问。)"
- 【SQLServer】【恢复挂起的解决方案】附加文件时候的提示“无法重新生成日志,原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的。 ”【数据库恢复】
- 帐套文件(*.mdf)无法复制,拷贝出现数据错误(循环冗余检查)帐套文件(*.mdf)无法复制,拷贝出现数据错误(循环冗余检查),sql附加823错误
- sqlserver附加数据库时,无法打开物理文件 "xx.mdf"。操作系统错误 5:"5
- 更新数据库所有表的某一个指定字段 ,附加对‘将 varchar 值转换为数据类型为 int 的列时发生语法错误’处理方法
- 从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常
- 下载额外数据文件失败 以下软件包要求安装后下载附加数据,但其数据无法下载或无法处理 ttf-mscorefonts-installer
- 解决 下载额外数据文件失败 以下软件包要求安装后下载附加数据,但其数据无法下载或无法处理 ttf-mscorefonts-installer
- 【Java】数据库查询的数据直接以指定文件类型下载到本地(弹出下载框)
- 存储用户当前的地理坐标,不要用string ,直接用float即可。string无法保持数据,原因暂不明
- Python数据分析基础(四)——数据文件处理
- 原因分析如下: 遇到这种情况,很有可能是把一个int型业务数据的 设置setText()或者类似的方法中, 这样Android系统就会主动去资源文件当中寻找, 但是它不是一个资源文件ID, 所
- Silverlight Xap包、配置文件修改后不能自动更新问题处理方式总结
- Maven编译jar出现:无法确定 T 的类型参数的异常的原因和处理方案
- 如何处理BLOB类型数据之二:下载BLOB内容并保存到文件中