1. 程式人生 > >EF 操作數據庫中的表

EF 操作數據庫中的表

lse row .com bject string partial cati one ip控件

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

EF 操作數據庫中的表