1.Connection 建立一个数据库连接,表示ADO.NET与数据库的唯一会话。
(注意引用命名空间System.Data.SqlClient,SqlConnection conn = new SqlConnection();)
2.Conmmand 可以对数据库进行增、删、查、改的操作命令,它必须和已经连接到数据库上的connection对象联合使用。
3.DataReader 可以从数据库中检索只读的数据,读取的时候也要保持数据库的连接
1. 打开应用程序根目录的 Web.config 文件
2.打开Web.config文件
找到<connectionstrings>往里面添加链接字符
3.在Models层写链接数据库代码 注意:引入using System.Configuration;
using System; using System.Collections.Generic; using System.Linq; using System.Web; //需引入的命名空间 using System.Configuration;//使用获取ConfigurationManager.ConnectionStrings() using System.Data; using System.Data.SqlClient;//SQL server操作 namespace login.Models { //通用数据访问类,连接数据库 public class sqlhelper { // 获取web.config配置文件定义的连接字符串 private static string connstring = ConfigurationManager.ConnectionStrings["connstring"].ToString(); //SqlDataReader对象可以从数据库中检索只读数据,每次查询结果中读取一条数据 public static SqlDataReader getreader(string sql) { SqlConnection conn = new SqlConnection(connstring);//连接数据库 SqlCommand cmd = new SqlCommand(sql, conn);//执行查询语句sql增删查改操作 try{ conn.Open();//打开连接 return cmd.ExecuteReader(CommandBehavior.CloseConnection); }catch(Exception ex){ //将错误信息写入日志 throw ex; } } } }
4.添加实体类,封装和传递数据
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace login.Models { //管理员实体类,主要封装和传递数据 [Serializable]//序列化标记,此类不能被继承 public class sysadmin { public int loginid { get; set; } public string loginpwd { get; set; } public string adminname { get; set; } } }
5.数据访问类使用实体类和数据库连接类
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Configuration; using System.Data; using System.Data.SqlClient; namespace login.Models {//用户数据访问类 public class sysadminservice { //根据登录账号和密码登录 public sysadmin adminlogin(sysadmin objadmin){ string sql = "select * from login where loginid={0} and loginpwd={1}"; //String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项。 sql = string.Format(sql,objadmin.loginid,objadmin.loginpwd); SqlDataReader objreader = sqlhelper.getreader(sql); if (objreader.Read())//判断,如果读取到响应的数据 { objadmin.adminname = objreader["adminname"].ToString(); } else { objadmin = null;} objreader.Close();//关闭数据库连接 return objadmin; } public class sysadminregistered { } } }
6.控制器掉用数据访问类
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using login.Models; namespace login.Controllers { public class sosadminController : Controller { // GET: /sosadmin/ public ActionResult Index() { return View("adminlogin"); } public ActionResult adminlogin(){ //接收登录信息 sysadmin objadmin = new sysadmin() { loginid = Convert.ToInt32(Request.Params["loginid"]), loginpwd = Request.Params["loginpwd"] }; //业务处理 objadmin=new sysadminservice().adminlogin(objadmin); if (objadmin != null) { ViewData["info"] = "欢迎您" + objadmin.adminname; } else { ViewData["info"] = "用户名或密码错误"; } //返回数据视图 return View(); } } }