DBHelper类加个方法、或加个属性、甚至加个字段也行把用户输入的数据库地址、登录名和密码作为参数传进去,然后组合成一个链接串,使用的时候用你这个组合后的连接字符串链接数据库如:
public string MakeConnStr(string strServer, string strUID, string strPwd)
{
    return "server=" + strDB + ";database=company;uid=" + strUID + ";pwd=" + strPwd;
}

解决方案 »

  1.   


      string server = "";
                    string database = "";
                    string uid = "";
                    string pwd = "";
                    string connectionString = string.Format("server={0};database={1};uid={2}a;pwd=3;", server,database,uid,pwd);
      

  2.   


    get 里面调用不了那个方法啊!
      

  3.   


    不用在get里调用
    你把get里的connectionString变量提取到外面来,在类里定义
    private static string connectionString;
    public static void MakeConnStr(string strServer, string strUID, string strPwd)
    {
      connectionString = "server=" + strDB + ";database=company;uid=" + strUID + ";pwd=" + strPwd;
    }
    外面的代码先调用MakeConnStr函数,再访问Connection属性
      

  4.   


    如果不写在GET{}里面 那我调用dbhelper类中的其他方法时能自动连接数据库吗?
      

  5.   

    connectionString是静态的,所以赋值一次后,这个变量值一直存在,不影响你的get
      

  6.   

     public static string connectionString = "";
            public string MakeConnStr(string strServer, string strUID, string strPwd)
            {
                return connectionString = "server=" + strServer + ";database=company;uid=" + strUID + ";pwd=" + strPwd;
            }
            private static SqlConnection connection;
            public static SqlConnection Connection
            {
               
                get 
                {
                    //string connectionString = "server=192.168.0.81\\sqlexpress;database=company;uid=sa;pwd=sa;";
                    if (connection == null)
                    {
                        connection = new SqlConnection(connectionString);
                        connection.Open();
                    }
                    else if (connection.State == System.Data.ConnectionState.Closed)
                    {
                        connection.Open();
                    }
                    else if (connection.State == System.Data.ConnectionState.Broken)
                    {
                        connection.Close();
                        connection.Open();
                    }
                    return connection;
                }
            }
    这样吗?
      

  7.   

    做个对话框,选择要连接的数据可,然后直接连接数据库就行了,然后把连接窜保存在config文件里,我有写好的代码,我qq358429109,有兴趣就来拿啊
      

  8.   

    上代码
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using Microsoft.Data.ConnectionUI;
    using System.Xml;
    namespace DSZQ
    {
        public partial class DataConn : Form
        {
            public DataConn()
            {
                InitializeComponent();
                //filepath = Environment.CurrentDirectory;
                filepath =Application.StartupPath;
                filepath += "//App.config";
            }
            string filepath;
            string connstr;
           /// <summary>
           /// 
           /// </summary>
           /// <param name="key"></param>
           /// <param name="strValue"></param>
            public void Modify(string key, string strValue)                                                                                         //两个参数:要修改的键值   和   要修改的新值;                               
            {
              string   flagstr = strValue;
                if (strValue == string.Empty)
                {
                    MessageBox.Show("连接串不能为空!");
                    return;
                }
                //string XPath = "/configuration/userInfo/add[@key='?']";
                try
                {
                    string XPath = "/configuration/appSettings/add[@key='?']";
                    XmlDocument domWebConfig = new XmlDocument();                //domWebConfig.Load((HttpContext.Current.Server.MapPath("web.config")));
                    domWebConfig.Load(filepath);
                    XmlNode addKey = domWebConfig.SelectSingleNode((XPath.Replace("?", key)));                if (addKey == null)
                    {
                        //Response.Write("<script>alert   (\"没有找到<add   key='" + key + "'   value=.../>的配置节\")</script>");
                        MessageBox.Show("没有找到<add   key='" + key + "'>的配置节");
                        return;
                    }
                    addKey.Attributes["value"].InnerText = strValue;
                    domWebConfig.Save(filepath);
                    MessageBox.Show("数据库连接配置成功","信息提示");
                    txtConnectionString.Text = connstr;
                    txtConnectionString.Enabled = false;
                }
                catch
                {
                   // MessageBox.Show("在"+Environment.CurrentDirectory + "目录下找不到web.config配置文件","信息提示");
                    txtConnectionString.Enabled = true;
                    txtConnectionString.Clear();
                    txtConnectionString.ForeColor = Color.Red;
                    txtConnectionString.Text ="在" + Application.StartupPath + "目录下找不到App.config配置文件";
                    return;
                }        }        private void buttonConn_Click(object sender, EventArgs e)
            {
                DataConnectionDialog dialog = new DataConnectionDialog();
                //添加数据源列表,可以向窗口中添加自己程序所需要的数据源类型
                dialog.DataSources.Add(DataSource.SqlDataSource);
                dialog.DataSources.Add(DataSource.OdbcDataSource);            dialog.SelectedDataSource = DataSource.SqlDataSource;
                dialog.SelectedDataProvider = DataProvider.SqlDataProvider;
                         //只能够通过DataConnectionDialog类的静态方法Show出对话框
                //不同使用dialog.Show()或dialog.ShowDialog()来呈现对话框
                if (DataConnectionDialog.Show(dialog, this) == DialogResult.OK)
                {
                    connstr = dialog.ConnectionString;
                    connstr = "Provider=SQLOLEDB.1;" + connstr;
                    Modify("ConnStr",connstr);
                              }
            }    
        }
    }
      

  9.   

    绝对不能依赖private static SqlConnection connection;这种东西。一位内SqlConnection人家是基于连接池的,所以每次调用Connection属性时都必须new 一个 SqlConnection 对象实例出来,才能用到连接池的好处。相反地,静态共享SqlConnection功能,在多用户使用时就会让你的程序频繁垮掉,而且根本用不到连接池,是画蛇添足的。
      

  10.   

    string server = "";
                    string database = "";
                    string uid = "";
                    string pwd = "";
                    string connectionString = string.Format("server={0};database={1};uid={2}a;pwd=3;", server,database,uid,pwd);UP