啥也不说,看代码。

--SQl中
--建立ren的数据库,插入一条信息
create database ren
go
use ren
go
create table xinxi
(
code nvarchar(20) primary key,--编号
name nvarchar(20)--名字
)
insert into xinxi values('','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 code=@code";
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 code=@code";
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[]+" "+ss[]);
}
cnn.Close();
}
public bool update(string code,string name)
{
bool b = false;
cmd.CommandText = "update xinxi set name=@name where code=@code";
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();
} }
}

完!!

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

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

    实体类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...

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

    一.完整修改和查询 在编写c#语句时需考虑到用户体验,例如在编写修改语句时,需要考虑到输入的内容在数据库中是否能够找到. 中间变量运用. 1.先查 2.执行操作 完整修改语句: bool has = ...

  3. 9_13学习完整修改和查询&&实体类,数据访问类

    完整修改和查询:中间变量运用. 1.先查 2.执行操作 ---------------------------------------------------- namespace ADO.NET_小 ...

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

    实体类.数据访问类 是由封装演变而来,使对数据的访问更便捷,使用时只需要调用即可,无需再次编写代码 实体类是按照数据库表的结构封装起来的一个类 首先,新建文件夹 App_Code ,用于存放数据库类等 ...

  5. ADO.net 实体类 、数据访问类

    程序分三层:界面层.业务逻辑层.数据访问层 比较规范的写程序方法,要把业务逻辑层和数据访问层分开,此时需要创建实体类和数据访问类 实体类: 例 using System; using System.C ...

  6. 【2017-04-20】Ado.Net与面向对象结合架构中的数据访问层(实体类,数据访问类)

    开发项目三层架构:界面层.业务逻辑层.数据访问层 今天学习一下数据访问层,分为实体类和数据访问类 所有的类放在App_Code这个文件夹下边.养成一个好的习惯. 一.实体类 数据库中的表映射为一个类, ...

  7. 【2017-04-20】Sql字符串注入式攻击与防御,实体类,数据访问类

    字符串攻击 所谓sql字符串注入式攻击就是在用户输入界面输入通过精心编制的含有某种指令的字符串,来改变C#中连接数据库要执行的sql语句,从而对数据库进行攻击性操作 在用户输入界面输入  a');up ...

  8. ADO.NET 【实体类】【数据访问类】

    认识分层结构,分层式结构是最常见,也是最重要的一种结构. 三层架构(3-tier architecture) 界面层(User Interface layer) 主要对用户的请求接受,以及数据的返回, ...

  9. ADO.NET(一) 空间 ADO.NET结构 命名空间(车延禄) System.Data—— 所有的一般数据访问类 S(转载)

    ADO.NET(一) 空间   ADO.NET结构 命名空间(车延禄)System.Data—— 所有的一般数据访问类System.Data.Common—— 各个数据提供程序共享(或重写)的类Sys ...

随机推荐

  1. [原创]java WEB学习笔记90:Hibernate学习之路-- -HQL检索方式,分页查询,命名查询语句,投影查询,报表查询

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. [原创]java WEB学习笔记65:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) ModelDriven拦截器 paramter 拦截器

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  3. .NET: WPF Binding对数据的校验和转换以及多路Binding

    一.校验 一般需要对target上的值进行校验. xaml: <Window x:Class="WpfApplication1.MainWindow" xmlns=" ...

  4. mesos概述

    mesos解决的问题 不同的分布式运算框架(spark,hadoop,ES,MPI,Cassandra,etc.)中的不同任务往往需要的资源(内存,CPU,网络IO等)不同,它们运行在同一个集群中,会 ...

  5. Unable to find the wrapper "https"错误的解决办法

    PHP.ini默认配置下,用file_get_contents读取https的链接,就会如下错误:Warning: fopen() [function.fopen]: Unable to find t ...

  6. 一个noconsole程序

    貌似是一个外国人写的,作用应该是让控制台的程序运行的时候不会弹出那个控制台黑框.想用来让它不显示 php-cgi.exe 运行后的窗口,可是效果不是预期的. 项目在 github 的位置:https: ...

  7. 在 wxWidgets 的介绍中看到的一句话

    3. wxwidgets提供的gui是大量使用宏的,这就意味着它是在尽可能的使用目标系统native的gui样式. ——你可以访问wxwidgets网站,看看那些开发的软件的截图,全是系统native ...

  8. java中的拷贝(一)

    摘自:http://blog.csdn.net/tounaobun/article/details/8491392 假如说你想复制一个简单变量.很简单: int apples = 5; int pea ...

  9. android 项目学习随笔十三(ListView实现ITEM点击事件,将已读状态持久化到本地)

    1.因为给LISTVIEW增加了两个头布局,所以在点击事件ITEM索引会增加2,比如原来第一条数据的索引应该为0,增加两个头布局后,它的索引变为        2,为了使LISTVIEW的ITEM在点 ...

  10. iOS从健康app中获取步数信息

    统计步数信息并不需要我们自己去实现,iOS自带的健康app已经为我们统计好了步数数据 我们只要使用HealthKit框架从健康app中获取这个数据信息就可以了 1.如下图所示 在Xcode中打开Hea ...