• C#中.NET Framework4.8 Windows窗体应用通过EF访问数据库并对数据库追加、删除记录


    目录

    一、应用程序设计

    二、应用程序源码

    三、生成效果


            前文作者发布了在.NET Framework4.8 控制台应用中通过EF访问已有数据库,事实上在.NET Framework4.8 Windows窗体应用中通过EF访问已有数据库也是一样的。操作方法基本一样,数据库EF模型和上下文都是自动生成的,在这里不再重复叙述,只把应用部分、窗体设计、生成效果分享出来。

    一、应用程序设计

            设计有一个窗体,dataGridView1显示数据库的数据表blog,textBox1的文本是要追加记录的网址,button1是追加按钮。textBox2的文本是要删除记录的ID,button2是删除按钮。

    二、应用程序源码

    1. //.NET Framework4.8窗体应用通过EF访问已有数据库
    2. //追加、删除数据库记录
    3. using System;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Windows.Forms;
    8. namespace _10_7
    9. {
    10. public partial class Form1 : Form
    11. {
    12. public Form1()
    13. {
    14. InitializeComponent();
    15. }
    16. ///
    17. /// 初始化Form1
    18. /// 初始化表格,显示数据表
    19. ///
    20. private void Form1_Load(object sender, EventArgs e)
    21. {
    22. button1.Text = "追加";
    23. button2.Text = "删除";
    24. label1.Text = "追加的Url:";
    25. label2.Text = "删除的ID:";
    26. button1.Size = new Size(40, 23);
    27. button2.Size = new Size(40, 23);
    28. dataGridView1.AllowUserToAddRows = false;
    29. dataGridView1.AllowUserToDeleteRows = false;
    30. dataGridView1.AllowUserToResizeColumns = false;
    31. dataGridView1.AllowUserToResizeRows = false;
    32. dataGridView1.RowHeadersVisible = false;
    33. dataGridView1.AutoSizeColumnsMode=DataGridViewAutoSizeColumnsMode.AllCells;
    34. using (var db = new BloggingContext())
    35. {
    36. dataGridView1.DataSource = db.Blog.ToList();
    37. }
    38. }
    39. ///
    40. /// 追加Add()
    41. /// 无论ID是否连续,都在数据库末尾追加新纪录
    42. ///
    43. #region 追加
    44. private void Button1_Click(object sender, EventArgs e)
    45. {
    46. using (var db = new BloggingContext())
    47. {
    48. if (textBox1.Text != "")
    49. {
    50. db.Blog.Add(new Blog { Url = textBox1.Text.Trim().ToString() }); //追加记录
    51. db.SaveChanges();
    52. dataGridView1.DataSource = db.Blog.ToList();
    53. }
    54. else
    55. {
    56. db.Blog.Add(new Blog { Url = "http://www.hao123.com/" }); //追加记录
    57. db.SaveChanges();
    58. dataGridView1.DataSource = db.Blog.ToList();
    59. }
    60. }
    61. }
    62. #endregion 追加
    63. ///
    64. /// 删除Remove()
    65. ///
    66. #region 删除记录
    67. private void Button2_Click(object sender, EventArgs e)
    68. {
    69. using (var db = new BloggingContext())
    70. {
    71. db.Blog.Remove(new Blog { BlogId = Convert.ToInt32(textBox2.Text.Trim()) }); //删除记录按ID
    72. db.SaveChanges();
    73. dataGridView1.DataSource = db.Blog.ToList();
    74. }
    75. }
    76. #endregion 删除记录
    77. }
    78. }

    三、生成效果

     

     

  • 相关阅读:
    视频美颜SDK原理与实践:从算法到应用
    【C++】STL 标准模板库 ③ ( STL 容器简介 | STL 容器区别 | STL 容器分类 | 常用的 STL 容器 )
    SQL电脑性能测试
    深入flink系列——集群启动流程
    Java基础面试-IOC
    Qt MinGW opencv环境配置测试
    【Mac】破解死循环,成功安装 Homebrew、curl、wget,快速配置 zsh
    基于springboot实现酒店管理系统平台项目【项目源码+论文说明】计算机毕业设计
    C51 - 定时器
    洛谷 P3627 [APIO2009]抢掠计划
  • 原文地址:https://blog.csdn.net/wenchm/article/details/134378892