日期:2014-05-17  浏览次数:21063 次

有关"ConnectionString 属性尚未初始化"的一点困惑
问题是这样的:
想实现功能:当form1load时,form2.show()被触发,然后显示出一个连接数据库的窗体,里面有服务器名、数据库名、用户名和密码四项,把四个textbox的text分别作为connString(数据库连接字符串)的Data Source、Initial Catalog、User Id和Password的值。
private void Form1_Load(object sender, EventArgs e)
  {
  Form6 form = new Form6();
  form.ShowDialog();
  if (form.DialogResult == DialogResult.OK)
  {
  connString = "Data Source = " + form.textBox1.Text +
  ";Initial Catalog = " + form.textBox2.Text +
  ";User Id = " + form.textBox3.Text +
  ";Password = " + form.textBox4.Text + ";Integrated Security = True";
  MessageBox.Show("成功连接数据库!");
  UpdateTreeView();
  }
  else
  this.Close();
个人觉得这个思路还正确,可不能解决在执行如下代码时的这个问题:

public static string connString;
SqlConnection conn = new SqlConnection(connString);
................................
public void UpdateTreeView()
  {
  string sqlstr = "select depart_fullname from department";
  SqlDataAdapter da = new SqlDataAdapter(sqlstr, conn);
  DataSet ds = new DataSet();
  int myRowCount = da.Fill(ds, "department");#会在此处报错“ConnectionString 属性尚未初始化”
  ....
}

------解决方案--------------------
你这个conn必须用之前重新初始化.
conn=new SqlConnection(connString);
string sqlstr = "select depart_fullname from department";
SqlDataAdapter da = new SqlDataAdapter(sqlstr, conn);
DataSet ds = new DataSet();
int myRowCount = da.Fill(ds, "department");#会在此处报错“ConnectionString 属性尚未初始化”
....