一、寫在前面
因為這學期選修的 .net 課程就要上機考試了,所以總結下.net 操作 SqlServer 資料的方法,(因為本人方向是 Java,所以對.net 的了解不多,但以下所寫代碼均是經過測驗成功的)
二、.net 連接資料庫
在web.config檔案中配置資料庫連接,代碼寫在<configuration></configuration>內
<appSettings>
<add key="connstring" value="https://www.cnblogs.com/sunkaixuan/archive/2021/11/09/user id=sa; password=sa123456; database=dataset; server=(local)" />
</appSettings>
其中 sa 為 SqlServer 資料庫賬號,sa123456 為資料庫賬號密碼,dataset 位資料庫名,
通過上面的代碼大家不難看出這是通過SqlServer資料庫的賬號連接的,那么如果需要通過Windows身份認證連接呢?
<appSettings>
<add key="connstring" value="https://www.cnblogs.com/sunkaixuan/archive/2021/11/09/Data Source=.;Initial Catalog=dataset;Integrated Security=True"/>
</appSettings>
其中,dataset 為資料庫名,
配置好了之后,再在cs后臺檔案中使用 Connection 物件連接
String constr = ConfigurationManager.AppSettings["connstring"].ToString(); SqlConnection myconn = new SqlConnection(constr);
很明顯,第一個句獲取我們在 web.config 中配置的資料庫的資訊的字串,然后 new 一個 SqlConnection 物件,
這個時候也許你會想,既然是獲取組態檔中的字串,那么可不可以直接在cs后臺檔案中寫而不需要再組態檔中配置后再獲取呢?答案是肯定的,
String constr = "Data Source=.;Initial Catalog=dataset;Integrated Security=True"; SqlConnection myconn = new SqlConnection(constr);
仔細對比下先前寫的組態檔,就知道這兩種方式的相同點了,
那么現在簡單說下 Connection 物件是個什么,在 ADO.NET 中 Connection 物件的主要用途是打開和關閉資料庫的連接,通過這個物件,可以對資料庫進行訪問和操作,
String constr = "Data Source=.;Initial Catalog=dataset;Integrated Security=True"; SqlConnection myconn = new SqlConnection(constr); myconn.Open(); //相關資料庫操作 myconn.Close();
Open 就是打開資料庫,Close 就是關閉資料庫,
三、.NET ORM 操作資料庫
安裝 sqlsuagr ORM

創建資料庫物件
//創建資料庫物件 SqlSugarClient
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = "Server=.xxxxx",//連接符字串
DbType = DbType.SqlServer, //資料庫型別
IsAutoCloseConnection = true //不設成true要手動close
});
查所有
List<Student> list=db.Queryable<Student>().ToList() //select * from Student
按條件查詢
db.Queryable<Student>().Where(it=>it.Id==1).ToList() //select * from Student where id=1
多條件查詢
db.Queryable<Student>().Where(it=>it.Id>10&&it.Name=="a").ToList() //select * from Student where id>10 and name='a' db.Queryable<Student>().Where(it=>it.Id>10).Where(it=>it.Name=="a").ToList() //select * from Student where id>10 and name='a' //如果是或者關系可以用 ||
模糊查詢
db.Queryable<Student>().Where(it =>it.Name.Contains("jack")).ToList();
//select * from Student where name like %jack%
動態OR查詢
var exp= Expressionable.Create<Student>();
exp.OrIF(條件,it=>it.Id==1);//.OrIf 是條件成立才會拼接OR
exp.Or(it =>it.Name.Contains("jack"));//拼接OR
var list=db.Queryable<Student>().Where(exp.ToExpression()).ToList();
根據主鍵查詢
susgar中的single等同于EF中的SingleOrDefault
db.Queryable<Student>().InSingle(2) //通過主鍵查詢 SingleById db.Queryable<Student>().Single(it=>it.Id==2) //根據ID查詢 //select * from Student where id=2
資料行數查前幾條
db.Queryable<Student>().Take(10).ToList() //select top 10 * from Student
獲取最小值
db.Queryable<Order>().Min(it=>it.Id);//同步 db.Queryable<Order>().MinAsync(it=>it.Id);//異步 //也可以用函式 SqlFunc.AggregateMin
求和
db.Queryable<Order>().Sum(it=>it.Id);//同步 db.Queryable<Order>().SumAsync(it=>it.Id);//異步 //也可以用函式 SqlFunc.AggregateSum
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/353089.html
標籤:.NET技术
上一篇:官宣 .NET RC 2
下一篇:[WPF] 玩玩彩虹文字及影片
