我的是winform程序,数据库用的sqlite,通过数据源,把数据库中的表生成数据集,也就是说一个数据集中有很表。如图
在winform中绑定数据,下面会有tableAdapter组件.如图:
在一个Form绑定数据,就会有多个tableAdapter组件,tableAdapter组件
数据库的连接字符串放在app.config中,是固定死的,但是我的程序需要客户安装,可以选择目录,所以数据库的连接字符串不能能死。所以我想在运行时,给tableAdapter.connection的ConntionString赋值,问题是我有很的form,每个form中有多个adpter 组件,如果对每个form的adpter赋值太麻烦了,有没有简单的方法?

解决方案 »

  1.   

    我从数据集中拖出的控件是自动绑定的,插入、更新、删除、查询基本上不用写一行sql代码,这是我目前发现的简单的方法了。
    至于数据库帮助类,我不知道有多大的用途,网上看了不少直接使用ado.net帮助类,那太底层了,数据绑定是个大问题。
      

  2.   

    你可以重载Setting.SettingLoaded事件,在这个事件里根据应用程序的设置改写连接字符串。
    不过你这种设计在数据量大的场合会造成界面失去响应,时间较长的操作应该放到子线程里去。
      

  3.   

    我的是winform程序,Setting类在哪呢?
      

  4.   

    我是这样想的
    XXXXXTableAdapter类,继承自System.ComponentModel.Component创建一个父类Form ,在Form中的load事件中,利用反射,遍历form所有成员,如果成员是继承自System.ComponentModel.Component并且Name以"Adpter",那就设置XXXXXTableAdapter的 connectiongString属性。然后,凡事使用数据绑定的窗体,只要继承自父类就可以了
      

  5.   

    参考How to dynamically change connection string in generated dataset class?