zoukankan      html  css  js  c++  java
  • 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

                                                                              

    时间就像海绵里的水,只要你愿意挤,总还是有的——鲁迅
  • 相关阅读:
    pytest+allure生成测试报告
    pytest之fixture使用详解
    pytest框架介绍
    使用records库操作SQL并且查询MySQL数据库
    python模块之codecs
    项目总结
    第二阶段团队绩效评分
    软件发布2.0
    “随手记”开发记录day20
    “随手记”开发记录day19
  • 原文地址:https://www.cnblogs.com/syzly/p/6658518.html
Copyright © 2011-2022 走看看