说明:
1、在using语句块中不用dbConnection.Open(),因为Execute方法中会Open,并且在执行完成会Close。
2、在Ado.Net中要手动Open,在Using语句块中使用时,可以不用手动Close。
public ActionResult Select() { string sql = @"select * from Info"; List<Info> list = null; using (IDbConnection dbConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString())) { list = dbConnection.Query<Info>(sql, CommandType.StoredProcedure).ToList(); SqlMapper.GridReader gridReader = dbConnection.QueryMultiple(sql); gridReader.Read(); } return Content(""); } public ActionResult Update() { string sql = @"update info set Name=@Name where Age=@Age"; using (IDbConnection dbConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString())) { dbConnection.Execute(sql, new Info() { Name = "s张", Age = 10 }); } return Content(""); } public ActionResult Delete() { string sql = @"delete from info where Age=@Age"; using (IDbConnection dbConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString())) { dbConnection.Execute(sql, new Info() { Age = 10 }); } return Content("OK"); } public ActionResult Insert() { string sql = "insert Userinfo values('zhao2323',23,'上海')"; string str = ""; IDbConnection dbConnection = null; using (dbConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString())) { str += "<br />Execute之前" + dbConnection.State; dbConnection.Execute(sql); str += "<br />Execute之后" + dbConnection.State; } str += "<br />using之后" + dbConnection.State; return Content("OK" + str); //执行结果: // Execute之前Closed //Execute之后Closed //using之后Closed } public ActionResult AdoNet() { string sql = "insert into UserInfo values('zhao',23,'上海')"; string str = ""; SqlConnection connection = null; using (connection = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString())) { using (SqlCommand command = new SqlCommand(sql, connection)) { connection.Open(); command.ExecuteNonQuery(); str += "<br />ExecuteNonQuery之后:" + connection.State; } str += "<br />using Command之后:" + connection.State; } str += "<br />using Connection之后:" + connection.State; return Content("Ok" + str); //执行结果 // ExecuteNonQuery之后:Open //using Command之后:Open //using Connection之后:Closed }