ADO.NET数据库操作

 

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;
       }
        }    
    }
}
View Code

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; }
    }
}
View Code

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 {
           

        }

    }
}
View Code

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();
        }

    }
}
View Code

 

                                                                          

posted @ 2017-04-02 10:50  ADFL  阅读(140)  评论(0编辑  收藏  举报