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

数据库运行结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值