Asp.net网站开发(一)LINQ TO SQL 之LINQ TO SQL类

 datacontext类的方法

常用的方法:

执行sql命令的ExecuteQuery方法查询

        

    if(!IsPostBack)

            {

                DataClasses1DataContext  db = new DataClasses1DataContext();

                string s = "select * from student ";

               GridView1.DataSource=db.ExecuteQuery<student>(s);

                GridView1.DataBind();

            }

 
运行结果如下:

ExecuteCommand()方法修改

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataClasses1DataContext db = new DataClasses1DataContext();

                string s = "select * from student ";
                string s1 = "update student set sname={0} where sid=3";
                db.ExecuteCommand(s1,"有长进");

                GridView1.DataSource = db.ExecuteQuery<student>(s);

                GridView1.DataBind();
            }
        }
运行结果如下:


处理table<t>类型的结果(只能在一个表中操作

table<t>InsertOnSubmit方法添加

 (1)    添加

例:(在student表中添加一个姓名,并输出姓名)

       if (!IsPostBack)

                {

                     DataClasses1DataContext db = new DataClasses1DataContext();

                       student  stu = new student();

                       stu.sname = "王子异";

                      db.student.InsertOnSubmit(stu);

                      db.SubmitChanges();

                       GridView1.DataSource =db.student.Where(P => P.sid==5).Select(P => P.sname);

                     GridView1.DataBind();


                  }
运行结果如下:



(2)    修改

 

              if(!IsPostBack)

                {

                    DataClasses1DataContext db = new DataClasses1DataContext();

                      student  stu =db.student.Where(P=>P.sid==2).FirstOrDefault();

                      if(stu!=null )

                     {

                     stu.sname = "令1";

                      db.SubmitChanges();

                    GridView1.DataSource =db.student;

                       GridView1.DataBind();

                      }

               }

运行结果如下:


(3)删除

DeleteOnSubmit方法删除

(在mark表中删除mid=4的数据) 注意:要先删除外键表再删除主键表

           if (!IsPostBack)
            {

                DataClasses1DataContext db = new DataClasses1DataContext();

                mark  m = db.mark .Where(P => P.mid == 4).FirstOrDefault();

                if (m != null)
                {

                    db.mark.DeleteOnSubmit(m );

                    db.SubmitChanges();

                    GridView1.DataSource = db.mark;

                    GridView1.DataBind();

                }

            }

运行结果如下:


 Entityset<T>类型结果添加方法

可以在两个表中操作,由一到多

   if(!IsPostBack)

            {

                DataClasses1DataContextdb = new DataClasses1DataContext();

                students=db.student.Where(P => P.sid == 3).FirstOrDefault();

                if(s != null)

                {

                    varmark = s.mark;

                    markm = new mark();

                    m.subject = "sql3";

                    m.score = 77;

                    mark.Add(m );

                    db.SubmitChanges();

                    GridView1.DataSource =mark;

                    GridView1.DataBind();

                }

 

            }

多对一

        protected void Page_Load(object sender, EventArgs e)
        {

            if (!IsPostBack)
            {
                DataClasses1DataContext db = new DataClasses1DataContext();

                mark m = db.mark.Where(P => P.mid == 1).FirstOrDefault();
                if (m!=null)
                {
                    student s = m.student;
                    Response.Write(s.sname);
                }
                
            }
        }
运行结果如下:

  

以上运用的数据库代码如下:

use master
go
if exists(select * from sys.databases where name='Student')
drop database Student
create database Student
go
use Student
if exists(select * from sys.tables  where name='student')
drop table student
create table student
(
sid int primary key identity(1,1) ,
sname varchar(10) not null

)
if exists(select * from sys.tables where name='mark')
drop database mark
create table mark
(
mid int  primary key identity(1,1) ,
subject varchar(10) not null,
score int not null,
sid int references student(sid)
)
insert into student values ('林彦俊')
insert into student values ('灵超')
insert into student values ('尤长靖')
insert into student values ('木子洋')
insert into mark values ('html',100,1)
insert into mark values ('sql',90,1)
insert into mark values ('html',10,2)
insert into mark values ('sql',60,2)
insert into mark values ('html',99,3)
insert into mark values ('sql',91,4)
select *from student
select * from mark

数据库运行结果:


猜你喜欢

转载自blog.csdn.net/sinat_40900884/article/details/79849042