很明显:在getCon()这个函数中,有一行代码是:SqlConnection con = new SqlConnection(connectionstring);也就是说,每调用一个这个函数,都会芹运肆产生一个新的SqlConnection对象.所以你下面的嫌轿代码悄伏:con.getCon().Open();SqlCommand scm = new SqlCommand(sql, con.getCon());两次getCon()得到的是不同的连接,第一个连接Open了.但是和SqlCommand绑定的连接没有Open.修改成:SqlConnection conn = con.getCon();conn.Open();SqlCommand scm = new SqlCommand(sql, conn);