LINQ管理SQL SERVER

1.添加数据
使用LINQ向SQL SERVER中添加数据,主要用到InsertOnSubmit方法和SubmitChanges方法
InsertOnSubmit方法用来将处于pending insert状态的实体添加到SQL数据表中
SubmitChanges用来记录要插入,更新和删除的对象,并执行相应命令实现对数据库的更改.
例:创建Windows应用程序,实现向数据库中添加数据
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace LINQ_to_SQL
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        string str = @"Server=;database=;uid=;pwd=";
        linqtosqlDataContext linq;
        public void dgv()
        {
            SqlConnection conn = new SqlConnection(str);
            conn.Open();
            SqlDataAdapter sda = new SqlDataAdapter("select*from information", conn);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
            conn.Close();
        }
        private void Form2_Load(object sender, EventArgs e)
        {
            dgv();
        }
      
        private void button1_Click(object sender, EventArgs e)
        {
         int i = Convert.ToInt32(textBox1.Text);
            int j = Convert.ToInt32(textBox3.Text);
        
            linq = new linqtosqlDataContext(str);
            information info = new information();//创建information类对象
        info.ID = i;
            info.NAME = textBox2.Text;
            info.SEX = textBox4.Text;
            info.TEL = textBox5.Text;
            info.AGE = j;
            linq.information.InsertOnSubmit(info);
            linq.SubmitChanges();
            MessageBox.Show("添加成功");
            dgv();

        }
    }
}

注:若要ID列实现自增编号在数据库设计时的数据库语句为
create table test111
(
mID int identity(1,1),
mName varchar(50),
mRemark varchar(30)
)
其中:itentity(a,b)为自动编号项, 以a开始,每次添加一条数据,该值增加b
2.修改,删除数据
修改数据时需要 用到SubmitChanges方法,删除数据用到DeleteAllOnSubmit方法
创建windows应用程序,设计如图界面
在这里插入图片描述
在dgv控件中添加一个contextMenuStrip用来作为删除快捷菜单
实现代码如下

namespace LINQ_to_SQL
{
    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }
        string str = @"Server=;database=;uid=;pwd=";
        linqtosqlDataContext linq;
        string strid = "";
        private void Form3_Load(object sender, EventArgs e)
        {
            dgv();
        }
//当在DGV中选中某条记录时,根据选中记录的员工编号查找其详细信息,并显示在相应的文本框中代码如下:
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
             strid = Convert.ToString(dataGridView1[0, e.RowIndex].Value).Trim();//获取选中的编号
            linq = new linqtosqlDataContext(str);
            textBox1.Text = Convert.ToString(dataGridView1[0, e.RowIndex].Value).Trim();//根据选中编号获取详细信息,并重新生成一个表
            int i = Convert.ToInt32(textBox1.Text);
            var result = from info in linq.information
                         where info.ID == i
                         select new
                         {
                             id = info.ID,
                             name = info.NAME,
                             age = info.AGE,
                             sex = info.SEX,
                             tel = info.TEL

                         };
            foreach(var item in result)
            {
                textBox2.Text = item.name;
                textBox3.Text = item.age.ToString();
                textBox4.Text = item.sex;
                textBox5.Text = item.tel.ToString();
            }
                
                }
//修改信息
        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("选择要修改的编号");
                return;
            }
            int i = Convert.ToInt32(textBox1.Text);
            linq = new linqtosqlDataContext(str);//创建linq连接对象
            var result = from info in linq.information
                         where info.ID == i
                         select info;
            foreach(information info in result)
            {
                int a = Convert.ToInt32(textBox3.Text);
                info.NAME = textBox2.Text;
                info.AGE = a;
                info.SEX = textBox4.Text;
                info.TEL = textBox5.Text.ToString();
                linq.SubmitChanges();
            }
            MessageBox.Show("信息修改成功");
            dgv();

                      
        }
        #region
        //获取数据库信息,显示在dgv中
        public void dgv()
        {
            linq = new linqtosqlDataContext(str);
            var result = from employee in linq.information
                         select new
                         {
                             编号 = employee.ID,
                             姓名 = employee.NAME,
                             性别 = employee.SEX,
                             电话 = employee.TEL
                         };
            dataGridView1.DataSource = result;
                       

        }
        #endregion
//删除所选数据
        private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (strid == "")
            {
                MessageBox.Show("选择要删除的记录");
                return;
            }
            int i = Convert.ToInt32(strid);
            linq = new linqtosqlDataContext(str);
            var result = from info in linq.information
                         where info.ID == i
                         select info;
            linq.information.DeleteAllOnSubmit(result);//删除选中信息
            linq.SubmitChanges();
            MessageBox.Show("删除成功");
            dgv();
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_41368899/article/details/82963655