C#中使用LINQtoSQL管理SQL数据库之添加、修改和删除

这篇具有很好参考价值的文章主要介绍了C#中使用LINQtoSQL管理SQL数据库之添加、修改和删除。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、添加数据

二、修改数据

三、删除数据 

四、添加、修改和删除的源码

五、生成效果

1.VS和SSMS原始记录

2.删除ID=2和5的记录

3.添加记录ID=2、5和8

 4.修改ID=3和ID=4的记录 


        用LINQtoSQL管理SQL Server数据库时,主要有添加、修改和删除3种操作。

        项目中创建LINQtoSQL类的方法已经在本文作者的其他文章中有过叙述,此处不再赘述。

一、添加数据

        使用LINQ向SQL Server数据库中添加数据时,需要使用InsertOnSubmit()方法和SubmitChanges()方法。其中,InsertOnSubmit()方法用来将处于pending insert状态的实体添加到SQL数据表中,其语法格式如下:

void InsertOnSubmit(Object entity) 
其中,entity表示要添加的实体。

        SubmitChanges()方法用来记录要插入、更新或删除的对象,并执行相应命令以实现对数据库的更改,其语法格式如下:

public void SubmitChanges()

二、修改数据

         使用LINQ修改SQL Server数据库中的数据时,需要用SubmitChanges()方法。

三、删除数据 

        使用LINQ删除SQL Server数据库中的数据时,需要使用DeleteAllOnSubmit()方法和SubmitChanges()方法。

        DeleteAllOnSubmit()方法用来将集合中的所有实体置于pending delete状态

void DeleteAllOnSubmit(IEnumerable entities)
其中,entities表示要移除所有项的集合。

四、添加、修改和删除的源码

//Form1.cs
//使用LINQ管理SQL Server数据库
//对数据库添加、删除、修改
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Linq;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;

namespace _07
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //定义数据库连接字符串
        public string strCon = "Data Source=DESKTOP-S11C97H\\SQLEXPRESS;Initial Catalog=db_CSharp;Integrated Security=True;";
        DataClasses1DataContext _Linq;          //声明Linq连接对象
        public string _strID = "";                      //记录选中的员工编号

        /// <summary>
        /// 初始化Form1
        /// 调用方法,在datagridview1中显示数据库
        /// </summary>
        private void Form1_Load(object sender, EventArgs e)
        {
            label1.Text = "编码:";
            label2.Text = "姓名:";
            label3.Text = "年龄:";
            label4.Text = "电话:";
            label5.Text = "地址:";
            label6.Text = "QQ:";
            label7.Text = "EMAIL:";
            label8.Text = "性别:";
            button1.Text = "添加";
            button2.Text = "删除";
            button3.Text = "修改";
            groupBox1.Text = "员工信息";

            comboBox1.Items.AddRange(new object[] {
            "男",
            "女"});

            textBox1.Size = new System.Drawing.Size(100,21);
            textBox2.Size = new System.Drawing.Size(100, 21);
            textBox3.Size = new System.Drawing.Size(40, 21);
            textBox4.Size = new System.Drawing.Size(100, 21);
            textBox5.Size = new System.Drawing.Size(100, 21);
            textBox6.Size = new System.Drawing.Size(100, 21);
            textBox7.Size = new System.Drawing.Size(100, 21);
            comboBox1.Size = new System.Drawing.Size(40, 21);
            button1 .Size = new Size(50, 21);
            button2.Size = new Size(50, 21);
            button3.Size = new Size(50, 21);

            dataGridView1.AllowUserToAddRows = true;
            dataGridView1.AllowUserToDeleteRows = true;
            dataGridView1.AllowUserToResizeColumns = true ;
            dataGridView1.AllowUserToResizeRows = false;
            dataGridView1.RowHeadersVisible = false;            
            dataGridView1.SelectionMode=DataGridViewSelectionMode.FullRowSelect;
            dataGridView1.ReadOnly = false;
            dataGridView1.ContextMenuStrip = contextMenuStrip1;     //绑定contextMenuStrip1
            button2.ContextMenuStrip = contextMenuStrip1;               //绑定contextMenuStrip1

            contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            toolStripMenuItem1});
            toolStripMenuItem1.Text = "删除";
            toolStripMenuItem1.Size = new Size(40,21);

            BindInfo();           
        }

        #region 显示所有员工信息
        /// <summary>
        /// 显示所有员工信息
        /// </summary>
        private void BindInfo()
        {
            _Linq = new DataClasses1DataContext(strCon);    //实例化Linq连接对象
            //获取所有员工信息
            var result = from info in _Linq.tb_Employee
                         select new
                         {
                             info.ID,
                             info.Name,
                             info.Sex,
                             info.Age,
                             info.Tel,
                             info.Address,
                             info.QQ,
                             info.Email
                         };
            dataGridView1.DataSource = result;            //对DataGridView控件进行数据绑定

            dataGridView1.Columns[0].Width = 60;
            dataGridView1.Columns[1].Width = 60;
            dataGridView1.Columns[2].Width = 30;
            dataGridView1.Columns[3].Width = 30;
            dataGridView1.Columns[4].Width = 80;
            dataGridView1.Columns[5].Width = 150;
            dataGridView1.Columns[6].Width = 80;
            dataGridView1.Columns[7].Width = 150;
        }

        #endregion

        /// <summary>
        /// 鼠标点击cell,获得选中行的编号
        /// </summary>
        private void DataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            //获取选中的员工编号,给删除事件使用
            _strID = Convert.ToString(dataGridView1[0, e.RowIndex].Value).Trim();
            
            //以下,给修改事件使用
            _Linq = new DataClasses1DataContext(strCon);    //实例化Linq连接对象
            //获取选中的员工编号
            textBox1.Text = Convert.ToString(dataGridView1[0, e.RowIndex].Value).Trim();
            //根据选中的员工编号获取其详细信息,并重新成成一个表
            var result = from info in _Linq.tb_Employee
                         where info.ID == textBox1.Text
                         select new
                         {
                             info.ID,
                             info.Name,
                             info.Sex,
                             info.Age,
                             info.Tel,
                             info.Address,
                             info.QQ,
                             info.Email
                         };
            //相应的文本框及下拉列表中显示选中员工的详细信息
            foreach (var item in result)
            {
                textBox2.Text = item.Name;
                comboBox1.Text = item.Sex;
                textBox3.Text = item.Age.ToString();
                textBox4.Text = item.Tel;
                textBox5.Text = item.Address;
                textBox6.Text = item.QQ.ToString();
                textBox7.Text = item.Email;
            }
        }

        /// <summary>
        /// ToolStripMenuItem1控件的删除事件
        /// </summary>
        private void ToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (_strID == "")
            {
                MessageBox.Show("请选择要删除的记录");
                return;
            }

            _Linq = new DataClasses1DataContext(strCon);//实例化Linq连接对象
            //查找要删除的员工信息
            var result = from employee in _Linq.tb_Employee
                         where employee.ID == _strID
                         select employee;
            _Linq.tb_Employee.DeleteAllOnSubmit(result); //删除员工信息
            _Linq.SubmitChanges();                                  //实例化Linq连接对象提交操作
            MessageBox.Show("员工信息删除成功");
            BindInfo();
        }

        /// <summary>
        /// 按钮事件:向数据库追加新记录
        /// </summary>
        private void Button1_Click(object sender, EventArgs e)
        {
            _Linq = new DataClasses1DataContext(strCon);    //实例化Linq连接对象
            tb_Employee _employee = new tb_Employee
            {
                //为tb_Employee类中的员工实体赋值
                ID = textBox1.Text,
                Name = textBox2.Text,
                Sex = comboBox1.Text,
                Age = Convert.ToInt32(textBox3.Text),
                Tel = textBox4.Text,
                Address = textBox5.Text,
                QQ = Convert.ToInt32(textBox6.Text),
                Email = textBox7.Text
            };   //实例化tb_Employee类对象

            _Linq.tb_Employee.InsertOnSubmit(_employee);    //删除员工信息
            _Linq.SubmitChanges();                                        //实例化Linq连接对象提交操作
            MessageBox.Show("员工信息添加成功");
            BindInfo();
        }

        /// <summary>
        /// 按钮事件:删除选中的记录
        /// new方法新定义的实例不能用于修改,因为new后的实例用的是新的主键值
        /// 只可以追加记录,不可以修改记录,对已有记录进行修改应用foreach方法
        /// </summary>
        private void Button2_Click(object sender, EventArgs e)
        {
            _Linq = new DataClasses1DataContext(strCon);    //实例化Linq连接对象
            //tb_Employee _employee = new tb_Employee
            //{
            //    //为tb_Employee类中的员工实体赋值
            //    ID = textBox1.Text,                
            //    Name = textBox2.Text,
            //    Sex = comboBox1.Text,
            //    Age = Convert.ToInt32(textBox3.Text),
            //    Tel = textBox4.Text,
            //    Address = textBox5.Text,
            //    QQ = Convert.ToInt32(textBox6.Text),
            //    Email = textBox7.Text
            //};   //实例化tb_Employee类对象

            if (_strID == "")
            {
                MessageBox.Show("请选择要删除的记录");
                return;
            }
            _Linq = new DataClasses1DataContext(strCon);//实例化Linq连接对象
            //查找要删除的员工信息
            var result = from employee in _Linq.tb_Employee
                         where employee.ID == _strID
                         select employee;
            _Linq.tb_Employee.DeleteAllOnSubmit(result); //删除员工信息
            _Linq.SubmitChanges();                                  //实例化Linq连接对象提交操作
            MessageBox.Show("员工信息删除成功");
            BindInfo();
        }

        /// <summary>
        /// 按钮事件:修改选中的记录
        /// </summary>
        private void Button3_Click(object sender, EventArgs e)
        {
            _Linq = new DataClasses1DataContext(strCon);    //实例化Linq连接对象

            if (textBox1.Text == "")
            {
                MessageBox.Show("请选择要修改的记录");
                return;
            }

            //查找要修改的员工信息
            var result = from _employee in _Linq.tb_Employee
                         where _employee.ID == textBox1.Text
                         select _employee;

            //对指定的员工信息进行修改
            foreach (tb_Employee _employee in result)
            {
                _employee.Name = textBox2.Text;
                _employee.Sex = comboBox1.Text;
                _employee.Age = Convert.ToInt32(textBox3.Text);
                _employee.Tel = textBox4.Text;
                _employee.Address = textBox5.Text;
                _employee.QQ = Convert.ToInt32(textBox6.Text);
                _employee.Email = textBox7.Text;
            }

            _Linq.SubmitChanges();  //更新数据库
            MessageBox.Show("员工信息修改成功");
            BindInfo();                     //把修改后的数据库更新到datagridview1中显示
        }
    }
}

五、生成效果

1.VS和SSMS原始记录

C#中使用LINQtoSQL管理SQL数据库之添加、修改和删除,数据库,sql  C#中使用LINQtoSQL管理SQL数据库之添加、修改和删除,数据库,sql

2.删除ID=2和5的记录

 C#中使用LINQtoSQL管理SQL数据库之添加、修改和删除,数据库,sql

C#中使用LINQtoSQL管理SQL数据库之添加、修改和删除,数据库,sql

3.添加记录ID=2、5和8

 C#中使用LINQtoSQL管理SQL数据库之添加、修改和删除,数据库,sql

C#中使用LINQtoSQL管理SQL数据库之添加、修改和删除,数据库,sql

 4.修改ID=3和ID=4的记录 

C#中使用LINQtoSQL管理SQL数据库之添加、修改和删除,数据库,sql

C#中使用LINQtoSQL管理SQL数据库之添加、修改和删除,数据库,sql文章来源地址https://www.toymoban.com/news/detail-745006.html

到了这里,关于C#中使用LINQtoSQL管理SQL数据库之添加、修改和删除的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Microsoft Azure 的1024种玩法】三十. 使用Azure Data Studio之快速上手连接管理Azure SQL 数据库(一)

    Azure Data Studio 是一种跨平台的数据库工具,适合在 Windows、macOS 和 Linux 上使用本地和云数据平台的数据专业人员,Azure Data Studio 利用 IntelliSense、代码片段、源代码管理集成和集成终端提供新式编辑器体验,在本文中将会介绍到如何通过Azure Data Studio 随时随地的来在本地计算机

    2024年02月04日
    浏览(53)
  • SQL Server数据库管理

    数据库登录——使用两种方式均可登录数据库:windows和sqlserver身份验证方式两种。  数据库的使用和管理 步骤一:创建数据库 1)新建数据库,数据库名为book,初始大小都配置为3,自动增长与路径都为默认,点击确定   步骤二:查看主数据与日志文件(查看C:Program Files

    2024年02月13日
    浏览(70)
  • 【数据类型】C#和Sql Server、Mysql、Oracle等常见数据库的数据类型对应关系

    🏆🏆这是小5写的第二篇城市领跑者文章,一起为所在城市领跑助力吧! 🏆🏆在实际项目中,不管是用C#后端编程语言也好,还是Java后端编程语言,都可能会用到不同端的数据类型转换和对应关系 在 C# 和 SQL Server 之间,以下是一些最常用的数据类型对应关系: 编号 C#数据

    2024年02月11日
    浏览(59)
  • 数据库课设---酒店管理系统(C# + Winform)

    语言 :C# 工具 :Visual Studio 2019, Microsoft SQL Server Management Studio 18 数据库 :SQL Server 15.0.2 OS :Windows 10 框架说明 WinForm 是 Windows Form 的简称,是基于 .NET Framework 平台的客户端(PC软件)开发技术,一般使用 C# 编程。 .NET Framework 是一种技术,支持生成和运行 Windows 应用及 Web 服务

    2024年02月06日
    浏览(53)
  • 基于C#的图书管理系统数据库设计报告

    第一章 问题描述 1.1 图书管理系统简介 本系统利用.NET处理数据库的功能,实现对图书馆信息的管理。主要功能为管理有关读者、出版社、书籍、借阅和管理者的信息等。 本系统的结构分为读者信息管理模块、出版社信息管理模块、书籍信息管理模块、借阅信息管理模块、管

    2024年02月09日
    浏览(50)
  • 数据库实验——通过SQL Server Management Studio创建及管理数据库

    (1)熟悉SQL Server Management Studio。 (2)掌握通过SQL Server Management Studio管理数据库的方法。 (3)掌握数据库及其物理文件的结构关系。 (4)掌握通过SQL Server Management Studio管理数据表的方法。 1.通过SQL Server Management Studio创建数据库 创建一个名称为学生管理信息Student_info数

    2024年02月08日
    浏览(66)
  • SQL Server数据库 -- 表的创建与管理

    一、数据表的组成 二、创建数据表 表的创建 表的查看 表的增加 表的修改 表的删除、 三、表的架构操作 四、总结 上次博客写到了数据库的创建与管理,但是创建的库里面什么东西都没有,现在我们需要在库里面添加数据表内容   在创建表之前,我们需要先知道表里面有哪

    2024年02月11日
    浏览(77)
  • GaussDB云数据库SQL应用系列-视图管理

    一、前言 GaussDB是一款基于云计算技术的高性能关系型数据库,支持多种数据模型和分布式架构。在GaussDB中,视图管理是非常重要的一项功能,它可以帮助用户更方便地管理和查询数据。 数据库视图管理是指对数据库中的视图进行创建、修改、删除、查询等操作的过程。 参

    2024年02月06日
    浏览(119)
  • GaussDB云数据库SQL应用系列—索引管理

    目录 一、前言 二、注意事项 三、索引创建 1、创建普通索引 2、创建唯一索引 3、创建多字段索引 4、创建部分索引 5、创建表达式索引 四、索引管理 1、查看索引信息 2、删除索引 总结 随着互联网的快速发展,数据量呈现爆炸式增长。如何高效地管理和查询这些数据成为了

    2024年02月09日
    浏览(64)
  • Microsoft SQL Server 图书管理数据库的建立

    – 新建 “图书管理数据库\\\" – 其中包含三个关系 – 图书(编号,图书名,作者,出版社,类型,单价) – 借阅者(编号,姓名,专业,读者类型,联系方式) – 借阅(读者编号,图书编号,借阅日期) – 其中,单价为数值型,借阅日期为日期型 – 用户自定义规则,

    2023年04月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包