1.首先使用ef技术进行数据库连接,直接从VS2019开发环境中进行配置,后续在开发过程中不需要在单独写连接字符串和sql语句了
2.查询如下
private void button2_Click(object sender, EventArgs e) //查询 select
{
BookDBEntities1 db = new BookDBEntities1();
var vs = from u in db.t_book2 //link 表达式 等价于 select * from t_book2 where id=2
where u.id == 2
select u;
foreach (var item in vs) //遍历的时候,才连接数据库,从数据中取数据。数据用到的时候才去数据库取数据,不用不查询
{
Console.WriteLine(item.number);
}
}
3.增加如下
private void button1_Click(object sender, EventArgs e) //增加 update
{
BookDBEntities1 db = new BookDBEntities1();
t_book2 t_Book2 = new t_book2();
t_Book2.flag = 12;
t_Book2.number = "张三";
db.t_book2.Add(t_Book2); //将数据添加到EF,并且添加了一个添加标记 add标记=insert
db.SaveChanges(); //执行此行代码,数据会被保存到数据库
}
4.删除如下
private void button3_Click(object sender, EventArgs e) //删除
{
BookDBEntities1 db = new BookDBEntities1();
var vs = from u in db.t_book2 //link 表达式 等价于 select * from t_book2 where id=2
where u.id == 2
select u;
t_book2 t_Book2= vs.FirstOrDefault();
if (t_Book2!=null)
{
db.t_book2.Remove(t_Book2); //删除标记
MessageBox.Show("删除成功");
db.SaveChanges();
}
else
{
MessageBox.Show("删除的数据不存在");
}
}
附件
在vs中使用的实体类如下
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码已从模板生成。
//
// 手动更改此文件可能导致应用程序出现意外的行为。
// 如果重新生成代码,将覆盖对此文件的手动更改。
// </auto-generated>
//------------------------------------------------------------------------------
namespace WindowsFormsApp1
{
using System;
using System.Collections.Generic;
public partial class t_book2
{
public int id { get; set; }
public string number { get; set; }
public Nullable<int> flag { get; set; }
}
}
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码已从模板生成。
//
// 手动更改此文件可能导致应用程序出现意外的行为。
// 如果重新生成代码,将覆盖对此文件的手动更改。
// </auto-generated>
//------------------------------------------------------------------------------
namespace WindowsFormsApp1
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
public partial class BookDBEntities1 : DbContext
{
public BookDBEntities1()
: base("name=BookDBEntities1")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<t_book2> t_book2 { get; set; }
}
}
数据库表如下