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

數據庫運行結果:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章