1、VS创建项目(实现数据库的增删改查、并在dataGridView中展示)
增、改通过Button,删通过快捷菜单ContextMenuStrip控件,查通过dataGridView单元格单击事件
2、SQL Server中查看自己创建的数据库
3、VS中创建实体数据模型
在已创建的项目上,鼠标右键,添加,新建项,Visual C#项,ADO.NET实体数据模型
来自数据库的EF设计器,下一步
新建连接,输入服务器名,具体如下:
具体代码如下:
扫描二维码关注公众号,回复:
6115441 查看本文章
using System; using System.Data; using System.Data.Entity; //引用数据实体 using System.Linq; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } string selectedName; //记录被选中的名称 private void Form1_Load(object sender, EventArgs e) { using(TestEntities2 db=new TestEntities2()) //实体(entity)模型对象 { dataGridView1.DataSource = db.Table_1.ToList();//控件中显示表中所有信息 } } private void button1_Click(object sender, EventArgs e) //增 { using(TestEntities2 db=new TestEntities2()) { Table_1 table = new Table_1 //表的对象 { Name = textBox1.Text, //为字段赋值 Price =Convert.ToInt32(textBox2.Text) }; //通过实体来操纵数据库中的表 db.Table_1.Add(table);//增 db.SaveChanges();//执行命令 dataGridView1.DataSource = db.Table_1.ToList();//重新展示数据源 } } private void button2_Click(object sender, EventArgs e) //改 { using (TestEntities2 db=new TestEntities2 ()) { Table_1 table = new Table_1 //表的对象 { Name = textBox1.Text, //依据主键,修改内容 Price = Convert.ToInt32(textBox2.Text) //更改的内容 }; db.Entry(table).State = EntityState.Modified; //改 db.SaveChanges(); //执行命令 dataGridView1.DataSource = db.Table_1.ToList(); //展示 } } private void 删除ToolStripMenuItem_Click(object sender, EventArgs e) //删,快捷菜单中实现 { using (TestEntities2 db=new TestEntities2 ()) { //控件中水果名,来锁定数据库表中商品所在行 Table_1 table = db.Table_1.Where(W => W.Name == selectedName).FirstOrDefault(); //lambda表达式 if (table!=null) { db.Table_1.Remove(table); //删 db.SaveChanges(); //执行命令 dataGridView1.DataSource = db.Table_1.ToList(); MessageBox.Show("删除成功!"); } else { MessageBox.Show("请选择要删除的内容!"); } } } private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) //查,鼠标点击单元格 { if (e.RowIndex>=0) //判断是否选择了行 { //控件中,获取选中的水果名 selectedName = Convert.ToString(dataGridView1[0, e.RowIndex].Value).Trim(); using (TestEntities2 db=new TestEntities2() ) { //获取选中对象所在的行(Name是数据表的主键) Table_1 table = db.Table_1.Where(W => W.Name == selectedName).FirstOrDefault(); if (table!=null) //不为空,则展示此水果的行内容 { textBox1.Text = table.Name; textBox2.Text = table.Price.ToString(); } } } } } }
参考博客 https://blog.csdn.net/qq_36598803/article/details/77664976