namespace 第15章_数据访问技术
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        SqlConnection conn;
        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("请输入正确的数据库名");
            }
            else
            {
                try
                {
                    string constr = "server=127.0.0.1;database=" + textBox1.Text.Trim() + ";uid=sa;pwd=56119537";
                    SqlConnection conn = new SqlConnection(constr);
                    conn.Open();
                    if (conn.State == ConnectionState.Open)
                    {
                        MessageBox.Show("数据库连接成功");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                conn.Close();
                if (conn.State == ConnectionState.Closed)
                {
                    MessageBox.Show("数据库断开成功");
                }
                conn.Open();
                if (conn.State == ConnectionState.Open)
                {
                    MessageBox.Show("数据库连接成功");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message );
            }
        }
    }
}
为什么书上的代码和我基本差不多 为什么我就错了?

解决方案 »

  1.   


    namespace 第15章_数据访问技术   //命名空间用中文不合适??
    {
      public partial class Form1 : Form
      {
      public Form1()
      {
      InitializeComponent();
      }
      SqlConnection conn; //这里你既然作为全局变量,下面你又声明了一个完全相同的局部变量,有问题??
      private void button1_Click(object sender, EventArgs e)
      {
      if (textBox1.Text == "")
      {
      MessageBox.Show("请输入正确的数据库名");
      }
      else
      {
      try
      {
      string constr = "server=127.0.0.1;database=" + textBox1.Text.Trim() + ";uid=sa;pwd=56119537";
      SqlConnection conn = new SqlConnection(constr);  //你的一个局部变量
      conn.Open();
      if (conn.State == ConnectionState.Open)
      {
      MessageBox.Show("数据库连接成功");
      }
      }
      catch (Exception ex)
      {
      MessageBox.Show(ex.Message);
      }
      }
      }  private void button2_Click(object sender, EventArgs e)
      {
      try
      {
      conn.Close();
      if (conn.State == ConnectionState.Closed)
      {
      MessageBox.Show("数据库断开成功");
      }   conn.Open();
      if (conn.State == ConnectionState.Open)
      {
      MessageBox.Show("数据库连接成功");
      }
      }
      catch (Exception ex)
      {
      MessageBox.Show(ex.Message );
      }
      }
      }
    }
      

  2.   


    namespace 第15章_数据访问技术   //命名空间用中文不合适??
    {
      public partial class Form1 : Form
      {
      public Form1()
      {
      InitializeComponent();
      }
      SqlConnection conn; //这里你既然作为全局变量,下面你又声明了一个完全相同的局部变量,有问题??
      private void button1_Click(object sender, EventArgs e)
      {
      if (textBox1.Text == "")
      {
      MessageBox.Show("请输入正确的数据库名");
      }
      else
      {
      try
      {
      string constr = "server=127.0.0.1;database=" + textBox1.Text.Trim() + ";uid=sa;pwd=56119537";
      SqlConnection  conn = new SqlConnection(constr);  //这里直接使用全局SqlConnection对象即可,无需再声明
      conn.Open();
      if (conn.State == ConnectionState.Open)
      {
      MessageBox.Show("数据库连接成功");
      }
      }
      catch (Exception ex)
      {
      MessageBox.Show(ex.Message);
      }
      }
      }  private void button2_Click(object sender, EventArgs e)
      {
      try
      {
      conn.Close();
      if (conn.State == ConnectionState.Closed)
      {
      MessageBox.Show("数据库断开成功");
      }   conn.Open();
      if (conn.State == ConnectionState.Open)
      {
      MessageBox.Show("数据库连接成功");
      }
      }
      catch (Exception ex)
      {
      MessageBox.Show(ex.Message );
      }
      }
      }
    }
      

  3.   

    代码里删除线不起作用?namespace 第15章_数据访问技术   //命名空间用中文不合适??
    {
      public partial class Form1 : Form
      {
      public Form1()
      {
      InitializeComponent();
      }
      SqlConnection conn; //这里你既然作为全局变量,下面你又声明了一个完全相同的局部变量,有问题??
      private void button1_Click(object sender, EventArgs e)
      {
      if (textBox1.Text == "")
      {
      MessageBox.Show("请输入正确的数据库名");
      }
      else
      {
      try
      {
      string constr = "server=127.0.0.1;database=" + textBox1.Text.Trim() + ";uid=sa;pwd=56119537";
       conn = new SqlConnection(constr);  //这里直接使用全局SqlConnection对象即可,无需再声明
      conn.Open();
      if (conn.State == ConnectionState.Open)
      {
      MessageBox.Show("数据库连接成功");
      }
      }
      catch (Exception ex)
      {
      MessageBox.Show(ex.Message);
      }
      }
      }  private void button2_Click(object sender, EventArgs e)
      {
      try
      {
      conn.Close();
      if (conn.State == ConnectionState.Closed)
      {
      MessageBox.Show("数据库断开成功");
      }   conn.Open();
      if (conn.State == ConnectionState.Open)
      {
      MessageBox.Show("数据库连接成功");
      }
      }
      catch (Exception ex)
      {
      MessageBox.Show(ex.Message );
      }
      }
      }
    }
      

  4.   


    namespace 第15章_数据访问技术
    {
      public partial class Form1 : Form
      {
      public Form1()
      {
      InitializeComponent();  
      }
      SqlConnection conn;       //类变量 SqlConnection conn;
      private void button1_Click(object sender, EventArgs e)
      {
      if (textBox1.Text == "")
      {
      MessageBox.Show("请输入正确的数据库名");
      }
      else
      {
      try
      {
      string constr = "server=127.0.0.1;database=" + textBox1.Text.Trim() + ";uid=sa;pwd=56119537";
      SqlConnection conn = new SqlConnection(constr);    //局部变量,与类变量重名
      conn.Open();
      if (conn.State == ConnectionState.Open)
      {
      MessageBox.Show("数据库连接成功");
      }
      }
      catch (Exception ex)
      {
      MessageBox.Show(ex.Message);
      }
      }
      }  private void button2_Click(object sender, EventArgs e)
      {
      try
      {
      conn.Close();
      if (conn.State == ConnectionState.Closed)
      {
      MessageBox.Show("数据库断开成功");
      }
      conn.Open();
      if (conn.State == ConnectionState.Open)
      {
      MessageBox.Show("数据库连接成功");
      }
      }
      catch (Exception ex)
      {
      MessageBox.Show(ex.Message );
      }
      }
      }
    }
      

  5.   

      SqlConnection conn = new SqlConnection(constr);这个你前面已经有了。这里只要实例化就行了