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领域驱动设计模式[学 ...
随机推荐
- MSF魔鬼训练营-3.2.1活跃主机扫描
概要: msf的arp_sweep .udp_sweep模块 Nmap -sn使用ping探测 -PU -sn 使用UDP协议端口探测 msf模块 arp_sweep 常用 ipv6_mult ...
- PostgreSQL unlogged表
PostgreSQL有一种介于正常表和临时表之间的类型表,称之为unlogged表,在该表新建的索引也属于unlogged,该表在写入数据时候并不将数据写入到持久的write-ahead log文件中 ...
- CentOS7下MySQL服务启动失败原因及解决方法
在重启阿里的CentOS7服务器后,重启MySQL 出现错误 Starting mysqld (via systemctl): Job for mysqld.service failed becaus ...
- hello1的web.xml解析
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.1" ...
- acmsguru
acmsguru 101 - Domino 要求每两个相邻的多尼诺骨牌相对的数字相同,即做一个一笔画 #include<bits/stdc++.h> using namespace std ...
- Scala新版本学习(1):
1.进官网:https://www.scala-lang.org/ 上面就是进入Scala社区后的一个画面,官方对Scala的简单介绍是:Scala将面向对象和函数式编程集合在一个简洁的高级语言中,S ...
- js鼠标点击特效,有关参数设置
效果图,用的faststone--录像--togif,黄色圆圈实际是不显示的 博客后台管理设置 本地新建一个demo.html文件,可以自行测试,要引入jquery文件哦 来个“红橙黄绿蓝靛紫”的点击 ...
- java实现RPC
一,服务提供者 工程为battercake-provider,项目结构图如下图所示 1.1 先创建一个“卖煎饼”微服务的接口和实现类 package com.jp.service; public in ...
- Delphi 数组与记录类型
- ERA-interim数据下载
步骤: 1.python 2.ECWMF账号和密码:编写.ecmwfapirc文件,放置在C:\Users\用户名 目录下,内容: { "url" : "http...& ...