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


    目录

    一、应用程序设计

    二、应用程序源码 

    三、生成效果


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

    一、应用程序设计

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

    二、应用程序源码 

    1. // .NET 6.0窗体应用访问已有数据库
    2. // .NET 7.0下同样的应用,没有报警,就是数据库不能加载到 dataGridView1
    3. // 对数据库进行追加记录、删除记录操作
    4. namespace _10_10
    5. {
    6. public partial class Form1 : Form
    7. {
    8. public Form1()
    9. {
    10. InitializeComponent();
    11. }
    12. ///
    13. /// 初始化Form1
    14. /// 初始化表格,显示数据表
    15. ///
    16. private void Form1_Load(object sender, EventArgs e)
    17. {
    18. button1.Text = "追加";
    19. button2.Text = "删除";
    20. label1.Text = "追加的Url:";
    21. label2.Text = "删除的ID:";
    22. button1.Size = new Size(40, 23);
    23. button2.Size = new Size(40, 23);
    24. dataGridView1.AllowUserToAddRows = false;
    25. dataGridView1.AllowUserToDeleteRows = false;
    26. dataGridView1.AllowUserToResizeColumns = false;
    27. dataGridView1.AllowUserToResizeRows = false;
    28. dataGridView1.RowHeadersVisible = false;
    29. dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
    30. using var db = new BloggingContext();
    31. dataGridView1.DataSource = db.Blogs.ToList();
    32. }
    33. ///
    34. /// 追加Add()
    35. /// 无论ID是否连续,都在数据库末尾追加新纪录
    36. ///
    37. #region 追加
    38. private void button1_Click(object sender, EventArgs e)
    39. {
    40. using var db = new BloggingContext();
    41. if (textBox1.Text != "")
    42. {
    43. db.Blogs.Add(new Blog { Url = textBox1.Text.Trim().ToString() }); //追加记录
    44. db.SaveChanges();
    45. dataGridView1.DataSource = db.Blogs.ToList();
    46. }
    47. else
    48. {
    49. db.Blogs.Add(new Blog { Url = "http://www.hao123.com/" }); //追加记录
    50. db.SaveChanges();
    51. dataGridView1.DataSource = db.Blogs.ToList();
    52. }
    53. }
    54. #endregion 追加
    55. ///
    56. /// 删除Remove()
    57. ///
    58. #region 删除记录
    59. private void button2_Click(object sender, EventArgs e)
    60. {
    61. using var db = new BloggingContext();
    62. db.Blogs.Remove(new Blog { BlogId = Convert.ToInt32(textBox2.Text.Trim()) }); //删除记录按ID
    63. db.SaveChanges();
    64. dataGridView1.DataSource = db.Blogs.ToList();
    65. }
    66. #endregion 删除记录
    67. }
    68. }

    三、生成效果

     

            困惑的是:.NET 7.0 Windows窗体应用应用同样的程序、同样的操作,却始终不能加载数据库到dataGridView。

  • 相关阅读:
    C语言计算一个数的 n 次方
    UnityPlayerActivity详解
    修改jquery-validation让你的验证提示更漂亮
    JavaFX:控件边框设置
    微信小程序接口调用凭证(获取token)auth.getAccessToken接口开发
    [框架设计之道(二)]设备、任务设置及业务流程
    Vue3-02_Vue基础入门
    java基于Android快递物流服务系统
    ubuntu 更新
    c++ vector用法 入门必看 超详细
  • 原文地址:https://blog.csdn.net/wenchm/article/details/134394633