zoukankan      html  css  js  c++  java
  • C# ADO.NET与面向对象

    软件开发的三层:界面层,业务逻辑层,数据访问层;

    数据访问层:项目添加App_Code文件夹;

    实体类:根据数据库表结构,类名和数据库表名一致;

    每个成员变量要与数据库表的列相对应,对象正好可以列为一行数据,封装起来;

    一个实体类做一个类;

    访问权限是public的

    数据访问类:起名UsersData;

    访问权限是public的

    实体类和数据访问类统称为数据访问层,每个表对应一个数据访问层;

    新建一个连接字符串的静态的类:

    访问权限是public的,必须有一个静态的成员变量,然后封装;

    连接字符串:成员变量 = "server =.; Database =Data0908; user =sa; pwd =123;";

    在数据访问操作的方法:在数据访问类的构造函数内,可以直接用连接字符串的类名点出来;

    在构造函数内可以直接连接数据库:

    SqlConnection conn = new SqlConnection();

    SqlCommend comm = conn.CreateCommand();

    *****写法:

    由于构造函数的约束性,可以提升数据库连接类和数据库操作类的作用域:

    private SqlConnection conn;

    private SqlCommend comm;

    public UsersData

    {

      conn = new SqlConnection(连接字符串的类名.连接字符串的成员变量);

      comm = conn.CreateCommand;

    }

    //返回表中的所有数据

    public List <Users> selectAll()   

    {

      List <Users> us = new List<Users>();     //新建一个泛型集合

      comm.CommandText = "select * from Users";  

      conn.Open();

      SqlDataReader dr = comm.ExeuteReader();

      

      return us;

    }

      

    while(dr.Read())    //如果dr.Read是true进循环;

    {

      Users u = new Users;

      u.Ids = Convert.ToInt32(dr[Ids]);

      u.UserName = dr[UserName].ToString();

      u.password = dr[password].ToString();

      u.NickName = dr[NickName].ToString();

      u.Sex = Convert.ToBoolean(dr[Sex]);

      u.Birthday = Convert.ToDateTime(dr[Birthday]);

      u.NationCold = dr[NationCold].ToString();

      us.Add(u);

    }

      conn.Close();

      return us;

    }

    foreach(Users u in ulist)

    {

      Console.WriteLine(u.Ids+" | "+u.password);

    }

    添加

    public bool UsersTianJia(users u)

    {

      bool result = false;    //默认结果false;

      cmd.CommandText = "insert into Users values(@a,@b,@c,@d,@e,@f)";
      cmd.Parameters.Clear();
      cmd.Parameters.AddWithValue("@a", u.UserName);
      cmd.Parameters.AddWithValue("@b", u.PassWord);
      cmd.Parameters.AddWithValue("@c", u.NickName);
      cmd.Parameters.AddWithValue("@d", u.Sex);
      cmd.Parameters.AddWithValue("@e", u.Birthday);
      cmd.Parameters.AddWithValue("@f", u.NationCode);

      conn.Open();

      int a = comm.ExcuteNonQuery();

      conn.Close();

      if(a>0)

        result = true;

      return result;

    }

    Users user = new Users();

    Console.WriteLine("请输入用户名");

    user.UserName = Console.ReadLine();

     

  • 相关阅读:
    将Microsoft SQL Server 2000数据库转换成MySQL数据库
    centos7 升级php版本
    Jquery Ajax方法传递json到action
    2015/12/7
    sql server 2008 评估期已过期
    C# 邮件发送注意事项
    ReSharper warning: Virtual member call in a constructor
    EF code first 生成edmx文件
    EF 已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭
    C# 发送邮件
  • 原文地址:https://www.cnblogs.com/xinchenhui/p/7837391.html
Copyright © 2011-2022 走看看