LINQ TO SQL 详细操作
DataClasses1DataContext dbc = new DataClasses1DataContext();
this.GridView1.DataSource = from p in dbc.NewsContent from c in dbc.NewsTitle where c.NewsId < 30 where c.NewsId==p.NewsId select p;//可以直接用Linq进行然后都数据进行绑定,但要注意的是LINQ是延迟查询的,所以有时候要对Linq To sql语句进行toList进行保存,避免重复进行查询。
var content = from p in dbc.NewsContent where p.NewsId == 1 select p;//进行该类查询,返回值都是IQueryable<T>,是一个集合类,可进行遍历。也可以写成下面这种形式,但没必要,理解就好,var会做判断
IQueryable<WebApplication2.NewsContent> contents = from p in dbc.NewsContent where p.NewsId == 1 select p;
更新操作:
var ss = dbc.NewsContent.Single(s => s.NewsId == 1); //只返回一个元素,不可以遍历或做数据绑定。
contents.NewsContent1 = contents.NewsContent1 + "chenyisi";//数据修改
dbc.SubmitChanges();//数据提交更新
存储过程:
var lo = dbc.IsLogin("chenyisi", " ? ? ??v! ?%?I+");//这是执行一个存储过程,其实返回值的类型就 是 System.Data.Linq.ISingleResult<T>泛型,
返回值会是在存储过程名字加Result System.Data.Linq.ISingleResult<IsLoginResult> u = lo;//进行类型转换
删除操作:
PhoneDataClassesDataContext db = new PhoneDataClassesDataContext();
var deleteItem=from c in db.NewsContent where c.NewsId==73 select c;//from c....这是返回集合的
db.NewsContent.DeleteAllOnSubmit(deleteItem);//DelectAllOnSubmit是用于删除集合的,返回类型为IQueryable<T>的。
var deleteOne = dbc.NewsContent.Single(s => s.NewsId == 1);
db.NewsContent.DeleteOnSubmit(deleteOne);//删除单项
db.SubmitChanges();//保存修改
获取整张表:
System.Data.Linq.Table<NewsContent> newsContent=db.GetTable< NewsContent>();
System.Text.StringBuilder str = new System.Text.StringBuilder();
foreach (var c in newsContent)
{
str.Append(c.NewsId + "__" + c.NewsContent1+"/////////");
}
一些执行方法:
IEnumerable<T> ExecuteQuery<T>(string sql,params object[] par);//执行查询的SQL操作。
int ExecuteCommand();//插入、修改、删除
var ss = from d in db.NewsContent where d.NewsId < 10 select d;
foreach (var s in ss)
{
s.NewsContent1 += "更新追加";
}
ChangeSet cs=db.GetChangeSet();//获取更新对象的集合
foreach (NewsContent c in cs.Updates) {
Response.Write(c.NewsContent1);
}
浙公网安备 33010602011771号