Linq基础增删改查

使用Linq时要注意一下问题:
1.创建Linq连接后生成的dbml文件不要变动,生成的表不要碰,拖动表也会造成数据库连接发生变动,需要重新保存.
2.属性拓展的使用:添加一个新的类,不要在dbml中添加属性拓展,一旦数据库变动,属性拓展类就会失效.
3.使用Linq获取的数据都是?int,?string等?数据类型,意思是也有可能为空,这时候操作数据需要先把数据类型转化成int,string等数据类型.

在这里操作数据库用到了lambda表达式,是一种匿名函数,使用lambda表达式自动带有防攻击,不需要在使用parameter了.

什么事lambda表达式:

Stu s = con.Stu.Where(r => r.Ids.ToString() == id).FirstOrDefault();一个lambda表达式

             查询数据库中Ids==id的第一条数据

FirstOrDelault() 第一条或者[不存在,不执行,为空]

 

数据查询:
建立LInq数据库连接后,后台编写:
using ([Linq名称]DataClassesDataContext con = new [Linq名称]DataClassesDataContext())
{

con.表名.ToList();[获取要查询数据库的数据,之后可以执行绑定数据]


}

例:

复制代码
            using (StudentsDataClassesDataContext con = new StudentsDataClassesDataContext())
            {
                DropDownList1.DataSource = con.Nation.ToList();
                DropDownList1.DataTextField = "NationName";
                DropDownList1.DataValueField = "NationCode";
                DropDownList1.DataBind();
                DropDownList2.DataSource = con.Class.ToList();
                DropDownList2.DataTextField = "ClassName";
                DropDownList2.DataValueField = "ClassCode";
                DropDownList2.DataBind();
            }
复制代码

 

 

添加数据:

1.实例化数据变量

2.填充变量数据

3.创建连接

4.修改数据

例:

复制代码
//实例化
Stu s = new Stu();
       //填充数据
        s.Name = TextBox2.Text;
        s.Sex = RadioButtonList1.Items[0].Selected;
        s.Birthday = Convert.ToDateTime(TextBox3.Text);
        s.NationCode = DropDownList1.SelectedValue;
        s.ClassCode = DropDownList2.SelectedValue;
        s.Score = Convert.ToInt32(TextBox4.Text);
       // 创建连接
        using (StudentsDataClassesDataContext con = new StudentsDataClassesDataContext())
        {//修改数据
            con.Stu.InsertOnSubmit(s);
            con.SubmitChanges();
        }
复制代码

 

 

修改数据:

1.先查到要修改的数据

2.修改这条数据

3.将修改好的数据传到数据库,完成修改

例:

复制代码
        string id = Request["id"];
        using (StudentsDataClassesDataContext con = new StudentsDataClassesDataContext())
        {
            Stu s = con.Stu.Where(r => r.Ids.ToString() == id).FirstOrDefault();
            if (s != null)
            {
                s.Name = TextBox2.Text;
                s.Sex = RadioButtonList1.Items[0].Selected;
                s.Birthday = Convert.ToDateTime(TextBox3.Text);
                s.NationCode = DropDownList1.SelectedValue;
                s.ClassCode = DropDownList2.SelectedValue;
                s.Score = Convert.ToInt32(TextBox4.Text);
                con.SubmitChanges();
            }
        }
复制代码

 

 

 

数据删除:

1.查到要删除的数据

2.把要删除的数据上传数据库,进行删除

例:

复制代码
 string id = Request["id"];

        using (StudentsDataClassesDataContext con = new StudentsDataClassesDataContext())
        {
            //根据主键值查询出对应的这个对象
            Stu s = con.Stu.Where(r => r.Ids.ToString() == id).FirstOrDefault();

            if (s != null)
            {
                con.Stu.DeleteOnSubmit(s);
                con.SubmitChanges();
                Response.Write("<script>alert('删除成功!');window.location.href='default.aspx';</script>");
            }
            else
            { Response.Write("<script>alert('删除失败!');window.location.href='default.aspx';</script>"); }
        }
复制代码
posted @ 2017-06-05 08:04  恶耀恢宏  阅读(407)  评论(0编辑  收藏  举报