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领域驱动设计模式[学 ...
随机推荐
- PTA(Basic Level)1087.有多少不同的值
当自然数 n 依次取 1.2.3.--.N 时,算式 ⌊n/2⌋+⌊n/3⌋+⌊n/5⌋ 有多少个不同的值?(注:⌊x⌋ 为取整函数,表示不超过 x 的最大自然数,即 x 的整数部分.) 输入格式: ...
- Oracle 即时客户点下载以及简单连接数据库的方法
1. 下载方法 百度 oracle client 第一个即可 2. 下载地址为: https://www.oracle.com/database/technologies/instant-client ...
- typescript中新增的基本数据类型
javascript中有7种数据类型,分别是:boolean,number,string,null,undefined和object,以及在es6中新增的一种类型 symbol.而typescript ...
- 用Java实现对英文版《飘》的文件读取与写入操作
从文件读入<飘>的英文版,并将结果输出到文件中 要求一: 实现对英文版<飘>的字母出现次数统计 package File; import java.io.FileInputSt ...
- Vue首页加载过慢 解决方案
一.什么导致了首页初步加载过慢:app.js文件体积过大 二.解决方法: 1.Vue-router懒加载 vue-router懒加载可以解决首次加载资源过多导致的速度缓慢问题:vue-router支持 ...
- http的导图
- CPU如何区分溢出和自然进位?
CPU如何区分溢出和自然进位? 之前学习补码的时候倒是学会了基本概念,但是最近又接触时发现还有不清楚的地方,所以又研究了下 今天的核心问题的"CPU是如何区分高位自然舍弃和溢出的?" ...
- python读写txt文件
整理平常经常用到的文件对象方法: f.readline() 逐行读取数据方法一: >>> f = open('/tmp/test.txt') >>> f.rea ...
- AngularJS 在实际应用中优缺点
AngularJS 在实际应用中优点:模板功能强大丰富,并且是声明式的,自带了丰富的Angular指令:是一个比较完善的前端MV*框架,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所 ...
- ansible的基本学习-安装和简单的配置测试
当下有许多的运维自动化工具(配置管理),例如:ansible.saltstack.puppet.fabric等 ansible 是一种集成it系统的配置管理.应用部署.执行特定任务的开源平台,是ans ...