整个程序里,有多个按钮要对SQL数据库进行操作,由于每个SQL的连接字串会有不同,所以用textBox填写,在程序运行时获取。
但现在有个问题,为了让全局调用SqlConnection,我按下面这样进行创建的,运行时会报错误:“ConnectingString属性尚未初始化”。
具体截图如下:程序代码附后,请大家指点一下,是不是“SqlConnection conFrom = new SqlConnection(sqlText.sqlFrom);”这一句应该换个地方写?或者应该如何来写?请指点,谢谢!namespace sqldatacopy
{
    //先创建全局sqlText类
    public class sqlText
    {
        public static string sqlFrom = "";  //用于保存来源SQL数据库的信息
        public static string sqlTo = "";    //用于保存目标SQL数据库的信息
    }    
    
    public partial class Form1 : Form
    {
        
        //创建SQL数据连接对象(数据源)
        SqlConnection conFrom = new SqlConnection(sqlText.sqlFrom);        //创建SQL数据连接对象(目标数据库)
        SqlConnection conTo = new SqlConnection(sqlText.sqlTo);        //创建数据集(全局)
        DataSet ds = new DataSet();
        int i = 100;        public Form1()
        {
            InitializeComponent();
        }
        
        //初始运行加载
        private void Form1_Load(object sender, EventArgs e)
        {
            sqlText.sqlFrom = this.textBox1.Text;
            sqlText.sqlTo = this.textBox2.Text;
            label1.Text = label1.Text + sqlText.sqlFrom; //显示来源SQL数据库的信息
            label2.Text = label2.Text + sqlText.sqlTo; //显示目标SQL数据库的信息        }        //清除无用数据
        private void button1_Click(object sender, EventArgs e)
        {
            using (SqlCommand cmd = new SqlCommand())//创建命令对象
            {
                try
                {
                    conFrom.Open();//打开数据库连接
                    cmd.Connection = conFrom;//设置连接属性
                    cmd.CommandText = "delete from article where classid=12";//设置SQL语句
                    cmd.ExecuteNonQuery();//执行SQL语句
                    conFrom.Close();//关闭数据库连接
                    label4.Text = "清除完毕!";
                }
                catch (Exception ex)
                {
                    label4.Text = "清除失败!" +ex;
                }
            }
        }
    }
}

解决方案 »

  1.   

    对数据库的操作封装成一个Library
      

  2.   

    显然不能将取Textbox给ConnectionString赋值的过程放在 Form_Load 里,应该在 TextChanged 或者是实际处理的那个时机。
      

  3.   

    第16行 SqlConnection conFrom;
    第19行 SqlConnection conTo;
    象上面这样就行了,没必要先 new 出来。到了第43行的 button1_Click 里面,再 new 这两个SqlConnection 也不迟啊。不明白你在第 4-8 行搞多了一个 class sqlText 类出来,有什么意思,感觉没必要嘛。