基于网页的数据库操作:
传统方法:ADO.NET
通过ADO.NET对象调用SQL语句实现查询、修改、删除与插入新记录。
新的方法:ef
将传统的数据库转换为面向对象的实体(Entity),变成类的定义(数据库对应实体对象,传统table表对应表对象)
微软提供了:EntityFramework简称EF
实体框架
EF的好处:
避免SQL语法与C#语法混用;
全部采用可视化面向对象的语法。
都有实时的代码提示。
数据库建模的两种方法:
DB-FIRST 先有数据库,后有模型
(一般采用DB-FIRST)
CODE-FIRST 先建模,后根据模型生成数据库。
xsDBEntities mydb = new xsDBEntities( );
//生成实体类的一个对象mydb
xsBASETABLE myrecord = mydb.xsBASETABLE.First( ); //找到第一条记录
//生成学生基础表的一条记录,对应要删除的记录
mydb.xsBASETABLE.Remove(myrecord); //删除模型中指定记录
mydb.SaveChanges();
//将对模型的操作保存到SQL SERVER中。
protected void Button1_Click(object sender, EventArgs e)
{
//添加记录
xsDBEntities mydb = new xsDBEntities();
xsBASETABLE myrecord = new xsBASETABLE( ) { xh="004",name="dddd", address="一栋101" };
//新建表的一条记录,直接在构造函数后赋值
mydb.xsBASETABLE.Add(myrecord);
//将新记录添加到模型中
mydb.SaveChanges();
//将对模型的操作保存到SQL SERVER中。
}
protected void Button3_Click(object sender, EventArgs e)
{
//修改记录
xsDBEntities mydb = new xsDBEntities(); //新建实体对象
xsBASETABLE myrecord = mydb.xsBASETABLE.First(); //找到第一条记录
myrecord.xh = "008"; //修改该记录的各个字段
myrecord.name = "LIMING";
myrecord.address = "四栋201";
mydb.SaveChanges();
//将对模型的操作保存到SQL SERVER中。
}
protected void Button4_Click(object sender, EventArgs e)
{ //查询代码
xsDBEntities mydb = new xsDBEntities(); //生成实体对象
xsBASETABLE myrecord = mydb.xsBASETABLE.First( ); //找到需要的记录
this.TextBox1.Text = myrecord.name; //将该记录的某字段赋值给文本框
}
protected void Button4_Click(object sender, EventArgs e)
{
//查询任意条件的代码
xsDBEntities mydb = new xsDBEntities(); //生成实体对象
var myrecord = mydb.xsBASETABLE.
Where( c => c.xh == "005" && c.name="dddd" );
//找到满足条件的记录集合
//var代表任意类型的变量
this.TextBox1.Text = myrecord.FirstOrDefault().name;
//将满足条件的记录集合中的第一条记录的某字段赋值给文本框
}
//多记录删除:
xsDBEntities mydb = new xsDBEntities();
var[U1] myrecord[U2] = mydb.xsBASETABLE.Where( n[U3] =>[U4] n.xh==[U5] "004" ); //找到满足条件记录的集合
foreach(var temp in myrecord ) //对集合中每一个对象循环操作
{
mydb.xsBASETABLE.Remove(temp); //删除模型中指定记录
}
mydb.SaveChanges();
//将对模型的操作保存到SQL SERVER中。
[U1]代表任意数据类型。
Var A=3计算机知道a是整型。
[U2]变量集合
[U3]任意变量名称
[U4]Lambda 表达式
[U5]是C语言的句子。