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

     

  • 相关阅读:
    java获取当前项目或类路径
    java转义字符处理——“\”替换为“/”
    OpenModelica 在特定目录下生成仿真结果文件
    Eclipse常用设置
    java反编译器
    OMShell常用命令及遇到的问题
    Java中的单实例
    Eclipse常用设置
    Eclipse快捷键
    vlookup+match高亮显示行
  • 原文地址:https://www.cnblogs.com/xinchenhui/p/7837391.html
Copyright © 2020-2023  润新知