1,VS 创建项目(实现数据库的增删改查, 并在 dataGridView 中展示)
增, 改通过 Button, 删通过快捷菜单 ContextMenuStrip 控件, 查通过 dataGridView 单元格单击事件
2,SQL Server 中查看自己创建的数据库
3,VS 中创建实体数据模型
在已创建的项目上, 鼠标右键, 添加, 新建项, Visual C# 项, ADO.NET 实体数据模型
来自数据库的 EF 设计器, 下一步
新建连接, 输入服务器名, 具体如下:
具体代码如下:
- 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
来源: http://www.bubuko.com/infodetail-3046308.html