ADO,NET 实体类 和 数据访问类

啥也不说,看代码。

--SQl中
--建立ren的数据库,插入一条信息
create database ren
go
use ren
go
create table xinxi
(
code nvarchar(20) primary key,--编号
name nvarchar(20)--名字
)
insert into xinxi values(‘1001‘,‘zhangsan‘)

1、建立实体类:

实体类:封装
封装一个类,类名与数据库表名一致
成员变量名与列名一致,多一个下划线
成员变量封装完的属性,就会与数据表中的列名一致

每一行数据都可以存成一个对象,操作这个对象,就相当于对某一行数据进行整体操作

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication71.App_Code
{
    public class xinxi
    {
        private string _code;
        public string code
        {
            get { return _code; }
            set { _code = value; }
        }
        private string _name;
        public string name
        {
            get { return _name; }
            set { _name = value; }
        }
    }
}

2、建立数据访问类:

就是将对数据库的一些操作,单独写到一个类中,封成一些方法,等待调用。

结构看起来会非常清晰。

就像html中的CSS样式表和javascript的关系

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;

namespace ConsoleApplication71.App_Code
{

    public class xinxidata
    {
        SqlConnection cnn = null;
        SqlCommand cmd = null;

        public xinxidata()
        {
            cnn = new SqlConnection("server=.;database=ren;user=sa;pwd=123");
            cmd = cnn.CreateCommand();
        }

        /// <summary>
        /// 增加
        /// </summary>
        /// <param name="x">信息对象</param>
        public void insert(xinxi x)
        {

            cmd.CommandText = "insert into xinxi values(@a,@b)";
            cmd.Parameters.Clear();
            cmd.Parameters.Add("@a",x.code);
            cmd.Parameters.Add("@b",x.name);
            cnn.Open();
            cmd.ExecuteNonQuery();
            cnn.Close();
        }

        //查询
        public xinxi chaxun(string code)
        {
            xinxi xin = null;
            cmd.CommandText = "select * from xinxi where [email protected]";
            cmd.Parameters.Clear();
            cmd.Parameters.Add("@code",code);
            cnn.Open();
            SqlDataReader ss = cmd.ExecuteReader();
            if (ss.HasRows)//判断有没有
            {
                xin = new xinxi();
                ss.Read();
                xin.code=ss["code"].ToString();
                xin.name=ss["name"].ToString();
            }
            cnn.Close();
            return xin;
        }

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="name"></param>
        public bool delete(string code)
        {
            bool b = false;
            cmd.CommandText = "delete from xinxi where [email protected]";
            cmd.Parameters.Clear();
            cmd.Parameters.Add("@code",code);
            cnn.Open();
            try//看看有没有出错,即删没删成功
            {
                cmd.ExecuteNonQuery();
                b=true;
            }
            catch
            {
                b=false;
            }
            cnn.Close();
            return b;
        }
        public void quanbu()//查询全部信息
        {
            cmd.CommandText = "select * from xinxi";
            cnn.Open();
            SqlDataReader ss = cmd.ExecuteReader();
            while (ss.Read())
            {
                Console.WriteLine(ss[0]+"  "+ss[1]);
            }
            cnn.Close();
        }
        public bool update(string code,string name)
        {
            bool b = false;
            cmd.CommandText = "update xinxi set [email protected] where [email protected]";
            cmd.Parameters.Clear();
            cmd.Parameters.Add("@name",name);
            cmd.Parameters.Add("@code",code);
            cnn.Open();
            try
            {
                cmd.ExecuteNonQuery();
                b = true;
            }
            catch { }
            cnn.Close();
            return b;
        }
    }
}

3,在main函数里面,增删改查

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ConsoleApplication71.App_Code;

namespace ConsoleApplication71
{
    class Program
    {
        static void Main(string[] args)
        {
            xinxidata sj = new xinxidata();//实例化
#region  添加
            //xinxi xin = new xinxi();
            //Console.Write("请输入添加的编号:");
            //xin.code = Console.ReadLine();
            //Console.Write("请输入添加的名字:");
            //xin.name = Console.ReadLine();
            //sj.insert(xin);
#endregion

#region  删除
            //Console.Write("请输入被删除编号");
            //string code = Console.ReadLine();
            //if (sj.chaxun(code) != null)//判断是否有这个编号
            //{
            //  bool T=  sj.delete(code);
            //  if (T == true)//如果删除成功
            //  {
            //      Console.WriteLine("删除成功");
            //  }
            //  else
            //  {
            //      Console.WriteLine("删除不成功");
            //  }
            //}
            //else
            //{
            //    Console.WriteLine("输入有误!!");
            //}
            #endregion
#region 查询全部信息
            //sj.quanbu();
            #endregion

            #region 修改
            Console.Write("请输入要修改的编号:");
            string code = Console.ReadLine();
            if (sj.chaxun(code) != null)
            {
                Console.Write("请输入要修改的名字:");
                string name = Console.ReadLine();
                bool M= sj.update(code,name);
               if (M == true)
               {
                   Console.WriteLine("修改成功!");
               }
               else
               {
                   Console.WriteLine("删除不成功");
               }

            }
            else
            {
                Console.WriteLine("输入有误,不存在此编号!!");
            }
            #endregion
            Console.ReadLine();
        }

    }
}

完!!

时间: 2024-10-15 00:08:30

ADO,NET 实体类 和 数据访问类的相关文章

ADO.NET(完整修改和查询、实体类,数据访问类)

一.完整修改和查询 在编写c#语句时需考虑到用户体验,例如在编写修改语句时,需要考虑到输入的内容在数据库中是否能够找到. 中间变量运用. 1.先查 2.执行操作 完整修改语句: bool has = false; Console.Write("请输入要修改的用户名:"); string Uname = Console.ReadLine(); //到数据库中查询输入的用户名是否存在 SqlConnection conn = new SqlConnection("server=.

ado.net 实体类_数据访问类

实体类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 实体类_数据访问类.App_Code { public class Users { private int _code; /// <summary> /// code /// </summary> public int Code { get { return _code; } set

重要!!!实体类、数据访问类

创建两个类: users类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 实体类_数据访问类.App_Code { public class Users { private int _Ids; /// <summary> /// ids /// </summary> public int Ids { get { return _Ids;

实体类、数据访问类中的属性拓展

类中: using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Text; namespace 实体类_数据访问类.App_Code { public class Users { SqlConnection conn = null; SqlCommand cmd = null; public Users() { conn = new S

实体类、数据访问类、属性扩展

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 实体类_数据访问类.App_Code { public class Users { private string _username; //封装 /// <summary> /// 用户名 /// </summary> public

字符串攻击、防攻击、实体类、数据访问类

字符串攻击: 主要利用获取需用户输入的字符串时,通过输入精心编制的含有某种指令的字符串,从而对数据库进行攻击性操作. 防攻击: 例 cmd.CommandText = "update Users set [email protected],[email protected],[email protected],[email protected],[email protected],[email protected] where [email protected]"; cmd.Param

字符串攻击、防攻击、实体类、数据访问类--2016年11月29日

防止SQL数据库字符串注入攻击 SQL数据库字符串注入攻击:需要使用cmd.Parameters这个集合占位符: @key 代表这个位置用这个占位符占住了 Parameters这个集合中将此占位符所代表的数据补全 cmd.Parameters.Clear(); --添加占位符数据之前,要清空此集合cmd.Parameters.Add("@pwd", Pwd); --占位符内容填充cmd.Parameters.Add("@nname",Nname);cmd.Param

实体类、数据访问类

创建两个类: users类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 实体类_数据访问类.App_Code { public class Users { private int _Ids; /// <summary> /// ids /// </summary> public int Ids { get { return _Ids;

C#-ade.net-实体类、数据访问类

实体类.数据访问类 是由封装演变而来,使对数据的访问更便捷,使用时只需要调用即可,无需再次编写代码 实体类是按照数据库表的结构封装起来的一个类 首先,新建文件夹 App_Code ,用于存放数据库类等类文件,新建类,例如: Users(与数据库访问的表同名)和 UsersData 在类UsersData里写数据库访问方法 using System; using System.Collections.Generic; using System.Linq; using System.Text; us

ADO面向对象使用(实体类、数据访问类、范型集合)

ADO面向对象使用: !!!!!在其它文件夹下创建新类,加public!再考虑是不是引用数据库命名空间和其它类的命名空间!是否需要将构造函数写出来,将数据库的两个类实例化!!!!! 实体类:就是封装,将数据库中的表封装成同名的类,里面的成员变量与表里面的列是对应的,一个对象就代表数据库中一行数据: 字段扩展:查询关联的外键表数据,只读! 数据访问类:就是对于实体类对应的数据库进行操作的,就是写方法! 泛型集合: List<T> list = new List<T>(); T代表的就