c# linq to sql 的基本操作
2010-11-05 11:30
543 查看
1)创建数据库School,数据表Student,表中的字段id、name。
2)键点击网站项目,选择添加新项,然后选择“Linq to sql Classes”命名为School,然后打开App_Code里面的School.dbml,设计视图上的文字提示你可以从服务器资源管理器或者攻击箱拖动项到设计界面上来创建实体类。
3)在服务器资源管理器中创建一个指向School数据库的数据连接,然后把Student表拖动到School.dbml的设计视图上,按CTRL+S保存,打开School.designer.cs可以发现系统自动创建了School数据库中Student表的映射。
4)现在,我们就可以使用Linq to sql完成简易增、删、改、查实现以下功能代码如下:
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data.Linq" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Linq" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
SchoolDataContext ctx = new SchoolDataContext("server=.;database=School;uid=sa;pwd=123456");
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
btnEdit.Enabled = false;
BindStudents();
}
}
//绑定学生信息
private void BindStudents()
{
//以日志形式记录DataContext生成的SQL
StreamWriter sw = new StreamWriter(Server.MapPath("sql.txt"), true);
ctx.Log = sw;
//获取全部学生的信息作为数据源和Repeater绑定
Table<Student> students = ctx.GetTable<Student>();
rptStudent.DataSource = from student in students select student;
rptStudent.DataBind();
sw.Close();
}
//清空控件信息
private void ClearInfo()
{
txtName.Text = string.Empty;
txtEditName.Text = string.Empty;
lblId.Text = string.Empty;
}
//添加学生信息
protected void btnSubmit_Click(object sender, EventArgs e)
{
Student student = GetStudent();//获取输入学生信息
if (student.name != "")
{
try
{
//添加学生信息
ctx.Student.InsertOnSubmit(student);
ctx.SubmitChanges();
Page.ClientScript.RegisterStartupScript(GetType(), "key", "alert('添加学生成功!')", true);
}
catch (Exception ex)
{
DoLog(ex.ToString());//调用工作日志
}
}
ClearInfo();//清空控件信息
BindStudents();
}
//获取输入的学生信息
private Student GetStudent()
{
Student student = new Student();
student.id = Guid.NewGuid();
student.name = txtName.Text.Trim().ToString();
if (student.name == "")//学生姓名为空
{
Page.ClientScript.RegisterStartupScript(GetType(), "key", "alert('请输入姓名!')", true);
}
return student;
}
//生成工作日志
private void DoLog(string message)
{
StreamWriter sw = new StreamWriter(Server.MapPath("log.txt"),true);
sw.WriteLine("{0} {1}", System.DateTime.Now, message);
sw.Close();
}
protected void rptStudent_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "DelStudent")//删除学生信息
{
try
{
//根据学生的id获取学生
Student student = ctx.Student.SingleOrDefault(s => s.id == new Guid(e.CommandArgument.ToString()));
//删除学生
ctx.Student.DeleteOnSubmit(student);
ctx.SubmitChanges();
Page.ClientScript.RegisterStartupScript(GetType(), "key", "alert('删除学生成功!')", true);
}
catch (Exception ex)
{
DoLog(ex.ToString());//调用工作日志
Page.ClientScript.RegisterStartupScript(GetType(), "key", "alert('该学生已不存在!')", true);
}
BindStudents();
}
if (e.CommandName == "EditStudent")//修改学生信息
{
lblId.Text = e.CommandArgument.ToString();
btnEdit.Enabled=true;
}
if (e.CommandName == "SelStudent")//根据学生的学好获取学生姓名
{
//根据学生的id获取学生
Student student = ctx.Student.SingleOrDefault(s => s.id == new Guid(e.CommandArgument.ToString()));
lblGetName.Text = student.name.ToString();
}
}
//修改学生信息
protected void btnEdit_Click(object sender, EventArgs e)
{
try
{
//根据学生的id获取学生
Student student = ctx.Student.SingleOrDefault(s => s.id == new Guid(lblId.Text.ToString()));
student.name = txtEditName.Text.ToString();//输入修改的数据
ctx.SubmitChanges();//修改学生信息
Page.ClientScript.RegisterStartupScript(GetType(), "key", "alert('修改学生成功!')", true);
}
catch (Exception ex)
{
DoLog(ex.ToString());//调用工作日志
Page.ClientScript.RegisterStartupScript(GetType(), "key", "alert('修改学生失败!')", true);
}
BindStudents();
ClearInfo();//清空控件信息
btnEdit.Enabled = false;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
姓名:<asp:TextBox ID="txtName" runat="server"></asp:TextBox><br />
<asp:Button ID="btnSubmit" runat="server" Text="提交" onclick="btnSubmit_Click" />
<br />
<asp:Repeater ID="rptStudent" runat="server"
onitemcommand="rptStudent_ItemCommand">
<ItemTemplate>
<table>
<tr>
<td>
<asp:LinkButton ID="lbtnSelect" runat="server" Text='<%#Eval("id") %>'
CommandName="SelStudent" CommandArgument='<%#Eval("id") %>'/>
</td>
<td><%#Eval("name") %></td>
<td>
<asp:LinkButton ID="lbtnDelStudent" runat="server" Text="删除"
CommandName="DelStudent" CommandArgument='<%#Eval("id") %>'/>
</td>
<td>
<asp:LinkButton ID="lbtnEditStudent" runat="server" Text="修改"
CommandName="EditStudent" CommandArgument='<%#Eval("id") %>'/>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
</div>
学号:<asp:Label ID="lblId" runat="server"></asp:Label><br />
姓名:<asp:TextBox ID="txtEditName" runat="server"></asp:TextBox><br />
<asp:Button ID="btnEdit" runat="server" Text="修改" onclick="btnEdit_Click" />
<br />
<asp:Label ID="lblGetName" runat="server"></asp:Label>
</form>
</body>
</html>
2)键点击网站项目,选择添加新项,然后选择“Linq to sql Classes”命名为School,然后打开App_Code里面的School.dbml,设计视图上的文字提示你可以从服务器资源管理器或者攻击箱拖动项到设计界面上来创建实体类。
3)在服务器资源管理器中创建一个指向School数据库的数据连接,然后把Student表拖动到School.dbml的设计视图上,按CTRL+S保存,打开School.designer.cs可以发现系统自动创建了School数据库中Student表的映射。
4)现在,我们就可以使用Linq to sql完成简易增、删、改、查实现以下功能代码如下:
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data.Linq" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Linq" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
SchoolDataContext ctx = new SchoolDataContext("server=.;database=School;uid=sa;pwd=123456");
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
btnEdit.Enabled = false;
BindStudents();
}
}
//绑定学生信息
private void BindStudents()
{
//以日志形式记录DataContext生成的SQL
StreamWriter sw = new StreamWriter(Server.MapPath("sql.txt"), true);
ctx.Log = sw;
//获取全部学生的信息作为数据源和Repeater绑定
Table<Student> students = ctx.GetTable<Student>();
rptStudent.DataSource = from student in students select student;
rptStudent.DataBind();
sw.Close();
}
//清空控件信息
private void ClearInfo()
{
txtName.Text = string.Empty;
txtEditName.Text = string.Empty;
lblId.Text = string.Empty;
}
//添加学生信息
protected void btnSubmit_Click(object sender, EventArgs e)
{
Student student = GetStudent();//获取输入学生信息
if (student.name != "")
{
try
{
//添加学生信息
ctx.Student.InsertOnSubmit(student);
ctx.SubmitChanges();
Page.ClientScript.RegisterStartupScript(GetType(), "key", "alert('添加学生成功!')", true);
}
catch (Exception ex)
{
DoLog(ex.ToString());//调用工作日志
}
}
ClearInfo();//清空控件信息
BindStudents();
}
//获取输入的学生信息
private Student GetStudent()
{
Student student = new Student();
student.id = Guid.NewGuid();
student.name = txtName.Text.Trim().ToString();
if (student.name == "")//学生姓名为空
{
Page.ClientScript.RegisterStartupScript(GetType(), "key", "alert('请输入姓名!')", true);
}
return student;
}
//生成工作日志
private void DoLog(string message)
{
StreamWriter sw = new StreamWriter(Server.MapPath("log.txt"),true);
sw.WriteLine("{0} {1}", System.DateTime.Now, message);
sw.Close();
}
protected void rptStudent_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "DelStudent")//删除学生信息
{
try
{
//根据学生的id获取学生
Student student = ctx.Student.SingleOrDefault(s => s.id == new Guid(e.CommandArgument.ToString()));
//删除学生
ctx.Student.DeleteOnSubmit(student);
ctx.SubmitChanges();
Page.ClientScript.RegisterStartupScript(GetType(), "key", "alert('删除学生成功!')", true);
}
catch (Exception ex)
{
DoLog(ex.ToString());//调用工作日志
Page.ClientScript.RegisterStartupScript(GetType(), "key", "alert('该学生已不存在!')", true);
}
BindStudents();
}
if (e.CommandName == "EditStudent")//修改学生信息
{
lblId.Text = e.CommandArgument.ToString();
btnEdit.Enabled=true;
}
if (e.CommandName == "SelStudent")//根据学生的学好获取学生姓名
{
//根据学生的id获取学生
Student student = ctx.Student.SingleOrDefault(s => s.id == new Guid(e.CommandArgument.ToString()));
lblGetName.Text = student.name.ToString();
}
}
//修改学生信息
protected void btnEdit_Click(object sender, EventArgs e)
{
try
{
//根据学生的id获取学生
Student student = ctx.Student.SingleOrDefault(s => s.id == new Guid(lblId.Text.ToString()));
student.name = txtEditName.Text.ToString();//输入修改的数据
ctx.SubmitChanges();//修改学生信息
Page.ClientScript.RegisterStartupScript(GetType(), "key", "alert('修改学生成功!')", true);
}
catch (Exception ex)
{
DoLog(ex.ToString());//调用工作日志
Page.ClientScript.RegisterStartupScript(GetType(), "key", "alert('修改学生失败!')", true);
}
BindStudents();
ClearInfo();//清空控件信息
btnEdit.Enabled = false;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
姓名:<asp:TextBox ID="txtName" runat="server"></asp:TextBox><br />
<asp:Button ID="btnSubmit" runat="server" Text="提交" onclick="btnSubmit_Click" />
<br />
<asp:Repeater ID="rptStudent" runat="server"
onitemcommand="rptStudent_ItemCommand">
<ItemTemplate>
<table>
<tr>
<td>
<asp:LinkButton ID="lbtnSelect" runat="server" Text='<%#Eval("id") %>'
CommandName="SelStudent" CommandArgument='<%#Eval("id") %>'/>
</td>
<td><%#Eval("name") %></td>
<td>
<asp:LinkButton ID="lbtnDelStudent" runat="server" Text="删除"
CommandName="DelStudent" CommandArgument='<%#Eval("id") %>'/>
</td>
<td>
<asp:LinkButton ID="lbtnEditStudent" runat="server" Text="修改"
CommandName="EditStudent" CommandArgument='<%#Eval("id") %>'/>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
</div>
学号:<asp:Label ID="lblId" runat="server"></asp:Label><br />
姓名:<asp:TextBox ID="txtEditName" runat="server"></asp:TextBox><br />
<asp:Button ID="btnEdit" runat="server" Text="修改" onclick="btnEdit_Click" />
<br />
<asp:Label ID="lblGetName" runat="server"></asp:Label>
</form>
</body>
</html>
相关文章推荐
- C#操作LINQ to SQL组件进行数据库建模的基本教程
- [译]LINQ TO SQL 介绍(概念和基本操作) – Part.1
- [译]LINQ TO SQL 介绍(概念和基本操作) – Part.1
- linq to sql基本的操作(读,添加,删除,更新)
- 演练:操作数据 (C#) (LINQ to SQL)
- c# Linq to sql 基本查询例子
- 使用Linq to SQL实现基本的增、删、改、查及绑定控件(C#)
- C# Linq to xml 基本操作
- c# Linq to sql 基本查询例子
- LINQ to SQL 基本数据操作
- c#写webservice快速链接到数据库的方法Linq to Sql简单操作
- C# Excel 基本操作、MS SQL Server
- LinQ To SQL 添加、删除、更新C#
- C#中Linq查询基本操作
- C#中Linq查询基本操作
- LINQ to SQL更新数据库操作(转)
- 如何构建和使用EF,用linqToSql实现对数据的操作
- Linq to SQL 简单的增删改操作
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C# 区间合并(Linq To Sql)