简单的linq to sql 的例子 ,实现了增删改查
来源:互联网 发布:java上机考试题库 编辑:程序博客网 时间:2024/03/29 23:51
自己先要建立一个名为bbs的数据库里面要建立一个名为linqtoTest的表。
在添加项目中添加linq to sql 类,再把资源管理器打开,新建连接,找到你建立的那个数据库。把那个表拖到
那个linq to sql 类中。就行了。
using System;
using System.Data.SqlClient;
using System.Data;
using System.Linq;
using System.Web.UI.WebControls;
using System.Data.Linq;
public partial class linq_boundfield_ : System.Web.UI.Page
{
linqtoTestDataContext db_Test = new linqtoTestDataContext();
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
// getDatabind1();
getDatabind2();
}
}
/// <summary>
/// 这是用我们平常
/// 的方法来绑定数据
/// </summary>
//void getDatabind1()
//{
// SqlConnection con = DB.createsql();
// con.Open();
// string sql = "select * from LinqtoTest";
// SqlCommand cmd = new SqlCommand(sql, con);
// SqlDataAdapter sda = new SqlDataAdapter(cmd);
// DataSet ds = new DataSet();
// sda.Fill(ds, "linqtoTest");
// this.GridView1.DataSource = ds.Tables["linqtoTest"].DefaultView;
// this.GridView1.DataBind();
//}
//这是用linq来绑定数据
void getDatabind2()
{
//linqtoTestDataContext db_Test = new linqtoTestDataContext();
this.GridView1.DataSource = db_Test.LinqtoTest;
this.GridView1.DataKeyNames = new string[] { "Id" };
this.GridView1.DataBind();
}
protected void GridView1_RowUpdating(object sender, System.Web.UI.WebControls.GridViewUpdateEventArgs e)
{
int id = Convert.ToInt32(this.GridView1.DataKeys[e.RowIndex].Value);
Session["ID"] = id;
LinqtoTest entity = db_Test.LinqtoTest.First(p => p.Id == id);
entity.name = ((TextBox)(this.GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text;
entity.QQ = ((TextBox)(this.GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text;
entity.sex = ((TextBox)(this.GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text;
db_Test.SubmitChanges();
this.GridView1.EditIndex = -1;
getDatabind2();
}
protected void GridView1_RowDeleting(object sender, System.Web.UI.WebControls.GridViewDeleteEventArgs e)
{
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
// LinqtoTest test = db_Test.LinqtoTest.SingleOrDefault(p => p.Id == id);
LinqtoTest test = db_Test.LinqtoTest.First(p => p.Id == id); //这和上面是一样的,找到符合条件的实例
db_Test.LinqtoTest.DeleteOnSubmit((from s in db_Test.LinqtoTest where s.Id == id select s).Single());
// db_Test.LinqtoTest.DeleteOnSubmit(test); //和上面也是一样
db_Test.SubmitChanges();
getDatabind2();
//在这里,应该知道的是 SingleOrDefault() Single() First() 都是从表中查找满足条件的实例,
//不同的是First()是返回满足条件的第一个元素,不管你有多少个满足条件的,它只要一个,并且不发生异常。
//但是 SingleOrDefault() Single()这两个就不一样了,它们也是只返回一个满足条件的,但是要有多个满足条件的
//它们会发生异常。只不过SingleOrDefault(),当没有满足条件的时,它会返回默认值。
}
protected void GridView1_RowEditing(object sender, System.Web.UI.WebControls.GridViewEditEventArgs e)
{
this.GridView1.EditIndex = e.NewEditIndex;
getDatabind2();
}
protected void GridView1_RowCancelingEdit(object sender, System.Web.UI.WebControls.GridViewCancelEditEventArgs e)
{
this.GridView1.EditIndex = -1;
getDatabind2();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
for (int i = 0; i <= this.GridView1.Rows.Count; i++)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='Red'");
//e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
//鼠标经过时,行背景色变
e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#E6F5FA'");
//鼠标移出时,行背景色变
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");
//e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#00FF00'");
////当鼠标移开时还原背景色
//e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
}
//记住:在GridView1_RowDataBound事件中写改变行色,添加确认的代码。
//this.style.backgroundColor要严格这样写,不能改的,Style不行,Backgroundcolor不行。
}
//这是删除进行确认时的操作
if (e.Row.Cells[5].HasControls())
{
LinkButton deletelbtn = e.Row.Cells[5].Controls[0] as LinkButton;
if (deletelbtn.Text.Equals("删除"))
deletelbtn.Attributes.Add("onclick", "return confirm('你确认要删除!')");
}
}
/// <summary>
/// 向数据库中添加新数据。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAdd_Click(object sender, EventArgs e)
{
if (JudgeExist())
{
LinqtoTest newEntity = new LinqtoTest();
//if (txtQQ.Text.Trim() != null)
//{
newEntity.QQ = this.txtQQ.Text.Trim();
//}
//else {
// Page.RegisterStartupScript("true", "<script>alert('不能为空!')</script>");
//}
newEntity.name = this.txtname.Text.Trim();
newEntity.sex = this.txtSex.Text.Trim();
db_Test.LinqtoTest.InsertOnSubmit(newEntity);
db_Test.SubmitChanges();
getDatabind2();
clear();
}
else
{
// Response.Write("<script>alert('此人已经存在!')</script>"); //这种方法要少用,用下面的比较好!
Page.RegisterStartupScript("true", "<script>alert('此人已经存在!')</script>");
}
}
/// <summary>
/// 清空
/// </summary>
void clear()
{
this.txtSex.Text = "";
this.txtQQ.Text = "";
this.txtname.Text = "";
}
/// <summary>
/// 判断是否有同名的人,若有则不能添加。
/// </summary>
/// <returns></returns>
bool JudgeExist()
{
string name = this.txtname.Text;
if (db_Test.LinqtoTest.SingleOrDefault(p => p.name == name) != null)
{
return false;
}
return true;
}
// 如果ItemTemplate列时,只是在更改时有所不同。
// (1)如果用的是TemplateField绑定的:
//点击编辑时,若要取得更新的信息,要用下面的方法:
//entity.QQ= ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox1")).Text
//(2)如果用的是boundfield绑定的
//点击编辑时,若要取得更新的信息,要用下面的方法:
//entity.QQ = ((TextBox)(this.GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text;
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Apenghui/archive/2009/10/11/4640271.aspx
- 简单的linq to sql 的例子 ,实现了增删改查。
- 简单的linq to sql 的例子 ,实现了增删改查
- LINQ to XML实现XML文档的增删改查
- LinQ To Entity的增删改查
- LinQ To Entity的增删改查
- LinQ To Entity的增删改查
- LinQ To Entity的增删改查
- Linq to SQL 简单的增删改操作
- ORM, Linq to sql增删改查
- Linq to sql增删改查
- LINQ to SQL之增删改查
- Linq to sql :增删改查
- Linq to SQL 增删改查
- Hibernate的简单增删改查例子
- Linq技术二:Linq to XML及xml增删改查的不同实现方式
- Linq的增删改查
- mybatis实现的增删改查例子
- sql的简单的增删改查
- DevPress GridControl的使用
- fprintf与stderr、stdout的使用
- Android Sample NotePad学习一
- 《GOF设计模式》—备忘录(MEMENTO)—Delphi源码示例:图形编辑器
- BCB中用Sender参数实现代码重用(修正版)
- 简单的linq to sql 的例子 ,实现了增删改查
- 使用Doxgen创建Xcode文档集
- asp.net 将数据导入到excel中 出现 “object”未包含“get_Range”的定义
- 《GOF设计模式》—备忘录(MEMENTO)—Delphi源码示例:一个反映备忘录模式的迭代接口
- google发布的gtv的js ui库
- 深入C++ Builder之编写自己的元件(1)
- 《GOF设计模式》—观察者(OBSERVER)—Delphi源码示例:观察者接口
- 马化腾周鸿祎把酒言欢
- 序列化和反序列化