EF 操作数据库中的表
1、VS创建项目(实现数据库的增删改查、并在dataGridView中展示)
增、改通过Button,删通过快捷菜单ContextMenuStrip控件(DateGridView控件的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, //Name是主键,不能修改
Price = Convert.ToInt32(textBox2.Text) //修改Price字段内容
};
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) //查,鼠标点击单元格,注意是CellClick事件
{
if (e.RowIndex>=) //判断是否选择了行
{
//控件中,获取选中的水果名。dataGridView1[列, 行]
//selectedName=Convert.ToString( dataGridView1.Rows[e.RowIndex].Cells[0].Value).Trim();
selectedName = Convert.ToString(dataGridView1[, 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
EF 操作数据库中的表的更多相关文章
- 关于python+django操作数据库中的表
数据库中的表示这样设计的 class C(models.Model): name = models.CharField(max_length=32) class B(models.Model): na ...
- 02-2--数据库MySQL:DDL(Data Definition Language:数据库定义语言)操作数据库中的表(二)
DDL对数据库的操作:http://blog.csdn.net/baidu_37107022/article/details/72334560 DDL对数据库中表的操作 1)方法概览 2)演示 //创 ...
- JDBC上关于数据库中多表操作一对多关系和多对多关系的实现方法
黑马程序员 我们知道,在设计一个Javabean的时候,要把这些BEAN 的数据存放在数据库中的表结构,然而这些数据库中的表直接又有些特殊的关系,例如员工与部门直接有一对多的关系,学生与老师直接又多对 ...
- EF操作数据库的步骤和一些简单操作语句
这里是写给我自己做记录的,不会写成一篇很好的博客,也不会置顶,如果有朋友看到了,而且觉得里面的内容不咋的,希望见谅哈! 关于这部分内容,这里推荐一篇总结的非常好的博客,如果你点击进来了,那么请略过下面 ...
- 清空SQL Server数据库中所有表数据的方法(转)
清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...
- SQLServer 命令批量删除数据库中指定表(游标循环删除)
DECLARE @tablename VARCHAR(30),@sql VARCHAR(500)DECLARE cur_delete_table CURSOR READ_ONLY FORWARD_ON ...
- 【Sqlserver清空数据库中所有表数据】
脚本: CREATE PROCEDURE sp_DeleteAllData AS EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT AL ...
- 清空SQL Server数据库中所有表数据的方法
原文:清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可 ...
- 菜鸡之NetCore 使用EF操作数据库 Oracle & Sqlserver (一)
摘要: 该篇文章主要记录netCore EFCore 如何操作Oracle和SqlServer 数据库,采用Codefirst方式创建数据库以及表. 一, 项目建立 项目采用DDD领域驱动设计模式[学 ...
随机推荐
- Linux 磁盘卷扩容
首先识别磁盘,成功之后会显示在/dev下 [root@oracle01 ~]# fdisk /dev/sda ## /dev/sda为通过fdisk -l 查看到的物理磁盘(第一行) Welcome ...
- 西安邀请赛-E(树链剖分+线段树)
题目链接:https://nanti.jisuanke.com/t/39272 题意:给一棵树,n个结点,树根为1,n-1条边,每个结点有一个权值.进行3种操作: 1 s t:把1和s之间的最短路径上 ...
- [转贴]Linux内核LTS长期支持版生命周期
Linux内核LTS长期支持版生命周期 https://blog.51cto.com/dangzhiqiang/1894026 搞不懂长期支持版本的特点和区别. 党志强关注0人评论4371人阅读201 ...
- Docker 运行的 应用程序无法连接Oracle数据库的解决办法
1. 最近公司使用docker化部署运行 app 发现一个部门的 多数据源取数的功能连接不上 oracle数据库 报错提示为: 2. 公司平台部同事给出两个解决方案: https://blog.cs ...
- windows vue环境搭建
windows环境搭建Vue开发环境 一.安装node.js(https://nodejs.org/en/) 下载完毕后,可以安装node,建议不要安装在系统盘(如C:). 二.设置nodejs pr ...
- 索引及explain 详解
索引的分类: 普通索引:仅加速查询 唯一索引:加速查询 + 列值唯一(可以有null) 主键索引:加速查询 + 列值唯一(不可以有null)+ 表中只有一个 组合索引:多列值组成一个索引,专门用于组合 ...
- springmvc的MultipartFile参数如果不上传文件报错的问题
@RequestMapping(value = "/updateInformation",method = RequestMethod.POST) @ResponseBody pu ...
- BugkuCTF--never give up
这道题还挺有意思的... http://123.206.87.240:8006/test/hello.php 查看元素,有个1p.html,访问. 还没看到网页元素就跳转了...抓包! 抓到了一堆东西 ...
- python_0基础开始_day08
第八节 1,文件操作 文件操作目的: 持久化,永久存储 (数据库之前 -- 文件操作就是代替数据库) 读 1,找到文件位 2,双击打开 3,进行一些操作 4,关闭文件 open() 打开,通过pyth ...
- spark教程(12)-生态与原理
spark 是目前非常流行的大数据计算框架. spark 生态 Spark core:包含 spark 的基本功能,定义了 RDD 的 API,其他 spark 库都基于 RDD 和 spark co ...