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();
}
}
}