string connStr = "Data Source=.;Initial Catalog=MySchoolMoreData;Integrated Security=True"; try { using (SqlConnection conn = new SqlConnection(connStr)) { //打开连接 conn.Open(); MessageBox.Show("ok"); //conn.Close(); conn.Dispose(); //没用释放只是清空了连接字符串 conn.ConnectionString = connStr; conn.Open(); MessageBox.Show("ok2"); } } catch(Exception ex) { MessageBox.Show(ex.Message); } } private void btnPool_Click(object sender, EventArgs e) { string connStr = "Data Source=.;Initial Catalog=MySchoolMoreData;Integrated Security=True;pooling=false"; //0,2 2.9 6.0 9 string sql = "select * from grade"; Stopwatch sw = new Stopwatch();//创建一个秒表 sw.Start(); for (int i = 0; i < 1000; i++) { using (SqlConnection conn = new SqlConnection(connStr)) { //SqlConnection conn = new SqlConnection(connStr); SqlCommand comm = new SqlCommand(sql, conn); comm.ExecuteScalar(); conn.Close(); } //SqlConnection conn = new SqlConnection(connStr); } sw.Stop(); MessageBox.Show(sw.Elapsed.ToString()); } private void btnState_Click(object sender, EventArgs e) { string connStr = "Data Source=.;Initial Catalog=MySchoolMoreData;Integrated Security=True;pooling=false"; SqlConnection conn = new SqlConnection(connStr); conn.StateChange += Change; conn.Open(); conn.Close(); } void Change(object sender, StateChangeEventArgs e) { MessageBox.Show(e.OriginalState+" "+e.CurrentState); } private void btnGetId_Click(object sender, EventArgs e) { string connStr = "Data Source=.;Initial Catalog=MySchoolMoreData;Integrated Security=True;pooling=false"; using(SqlConnection conn=new SqlConnection(connStr)) { conn.Open(); //string sql = "insert into grade values('" + txtName.Text.Trim() + "');select @@identity"; string sql = " insert into grade output inserted.classid values('" + txtName.Text.Trim() + "')"; //方法的意义不在于执行那一些命令,而在于能够接收到某种操作类型的返回值 SqlCommand command = new SqlCommand(sql, conn); //调用什么方法,由你那一种类型的返回值决定 int obj =Convert.ToInt32(command.ExecuteScalar()); MessageBox.Show("标识列值是:"+obj); } } }