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
數據庫運行結果: