LINQ to SQL 能夠調用存儲過程從數據庫中查詢數據。為了方便開發人員調用存儲過程,LINQ to SQL將為存儲過程創建一個方法,並指定該方法調用的存儲過程,以及傳入的參數和返回值。
在左邊數據連接中把寫好的存儲過程托到右邊第二個里面就可以,當方法調用
查詢數據
use LinqDB //創建一個存儲過程 go create proc Pr_GetUsers as select * from UserInfo order by ID desc go
LinqDBDataContext db = new LinqDBDataContext(); var result = from u in db.Pr_GetUsers() where u.ID < 50 select u; //綁定控件並顯示 dl_List.DataSource = result; 可以直接當數據源使用 dl_List.DataSource=db.Pr_GetUsers()
dl_List.DataBind();
添加數據
create proc Pr_InsertCategory ( @Name varchar(50)=null, @ParentID int=null, @ShowOrder int=null, @Remark text=null ) as insert into Category ([Name],ParentID,ShowOrder,Remark) values (@Name,@ParentID,@ShowOrder,@Remark) go
LinqDBDataContext db = new LinqDBDataContext(); int result= db.Pr_InsertCategory(t_Name.Text, Convert.ToInt32(ddl_Parent.SelectedValue), Convert.ToInt32(t_Num.Text), t_Words.Text); if (result!=-1) { Response.Write("<script>alert('添加成功!')</script>"); } else { Response.Write("<script>alert('添加失敗!')</script>"); }
刪除數據同理
DataContext 類相關的方法
檢測數據庫是否存在的DatabaseExists()方法
LinqDBDataContext db = new LinqDBDataContext(); if (db.DatabaseExists()) { Response.Write("數據庫連接成功!"); }
DatabaseExists()方法在檢測指定的數據庫時,將嘗試打開DataContext類的實例指定的數據庫連接。如果打開連接成功,則返回true,否則返回false;
創建數據庫的CreateDatabase()方法
db.CreateDatabase();
刪除數據庫的DeleteDatabase()方法
db.DeleteDatabase();
執行SQL命令的ExcuteCommand()方法
LinqDBDataContext db = new LinqDBDataContext(); string cmdText = "update userinfo set username=username+'"+DateTime.Now.Year+"' where ID>90"; //相當於SQL語句 int result = db.ExecuteCommand(cmdText); Response.Write(result + "條數據被更新");
執行SQL查詢的ExcuteQuery()方法
LinqDBDataContext db = new LinqDBDataContext(); string cmdText = "select top 10 * from userinfo"; //執行SQL查詢 IEnumerable<UserInfo> result= db.ExecuteQuery<UserInfo>(cmdText); //接口不能new 可以用子類來接受 foreach (UserInfo u in result) { Response.Write("用戶名稱:" + u.Username + "<br>"); }