你可以试着做一个XML文件进行数据库管理。然后,连接器要调用该文件。

解决方案 »

  1.   

    建个text 将连接串放里面不就得了?干嘛依赖于微软的结构
    你也可以使用INI啊,同时也可以加密存储啊
      

  2.   

    如果有需要改动,最好连同其它有必要修改的值一起放在一个XML配置里。
    如果不需要改动,可以放在资源文件里。
      

  3.   

    你也可以建个web.config的文件,到时读这个文件就行了被
      

  4.   

    可以写到一个类似于Web.Config的XML文件中去,也可以写到INI文件中去,还可以写到注册表中,其实写到一个文本文件中也可以的.为了安全你最好加密
      

  5.   

    我是写到注册表里的,不过写入XML也是很好的办法。还有就是联接的也是字符串,当然可是这样了 "datasource="+textBox1.Text+"size=2048"这样的了!
      

  6.   

    1,同样通过XXX.exe.config 读取2,写ini,通过API获取,
    /// <summary>
    /// 从配置文件中取得数据库连接字符串 
    /// 默认:Web方式,从Web.config 中取 GetConnStrWeb()
    /// 桌面方式:从Windows目录下的eii.ini 中取 GetConnStrDeskTop()
    /// </summary>
    public  class SQLConnString
    {
    private const string USER = "User id";
    private const string PASS = "password";
    private const string SOURCE = "data source";
    private const string CATALOG= "catalog";
    private const string SIZE = "size"; private const string SECTION= "DataBase";
    private static string INI_FILE= System.Environment.GetEnvironmentVariable("WINDIR")+"\\eii.ini";
    // @"C:\Winnt\system32\ini.dll"; [DllImport("kernel32")]
    private static extern int GetPrivateProfileString(string section,string key,string def,StringBuilder retVal,int size,string filePath);
    [DllImport("kernel32")]
    private static extern uint GetPrivateProfileInt(string section,string key,uint size,string filePath);
    public SQLConnString()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }

    /// <summary>
    /// 取得web程序的数据库连接字符串
    /// </summary>
    /// <returns></returns>
    private static string GetConnStrWeb()
    {
    return ConfigurationSettings.AppSettings["Tiny_Dust_DL_DataBase_Conn_String"];
    } /// <summary>
    /// 取得CS程序的连接字符串
    /// </summary>
    /// <returns></returns>
    private static string GetConnStrDeskTop()
    {
    string ReturnText;
    ReturnText="persist security info=False; packet size="+GetPrivateProfileInt(SECTION,SIZE,4096,INI_FILE).ToString()+";data source="+IniReadValue(SOURCE)
    +";initial catalog="+IniReadValue(CATALOG)+";user id="
    +IniReadValue(USER)+";password="+IniReadValue(PASS);
    // ReturnText="provider=SQLOLEDB;data source=172.16.36.222"+
    // ";initial catalog=RemoteEdu;user id=sa"
    // +";password=1234567890";

    return ReturnText;

    } /// <summary>
    /// 取得连接字符串
    /// </summary>
    /// <returns></returns>
    public  static string GetConnStr()
    {
    #if WEB
    return GetConnStrWeb();
    #else
    return GetConnStrDeskTop();
    #endif
    }
    /// <summary>
    /// 从配置文件中取配置
    /// </summary>
    /// <param name="Key">键</param>
    /// <returns></returns>
    public static string IniReadValue(string Key)
    {

    StringBuilder temp = new StringBuilder(255);
    int i = GetPrivateProfileString(SECTION,Key,"",temp,255,INI_FILE);
    return temp.ToString();
    } }
    3,xml
      

  7.   

    我本人的想法是最好写到注册表中,写INI文件好象有点复杂
    通过对话框获取连接串也不是很好,因为这个的话,每个操作员都要知道是哪个数据库,什么密码了不是吗?