日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ADO.NET笔记

發(fā)布時(shí)間:2025/3/15 asp.net 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ADO.NET笔记 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、ADO.NET (Access Data Object, 數(shù)據(jù)訪問對象)
.NET操作數(shù)據(jù)庫的一組類
1. DataSet (數(shù)據(jù)集)
2. .NET數(shù)據(jù)提供程序 (Data Provider)
2.1. Connection
2.2. Command
2.3. DataReader
2.4. DataAdapter


二、Connection (連接對象)
1. 創(chuàng)建:
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "連接字符串";
// 或:
SqlConnection conn = new SqlConnection(連接字符串);


2. 打開連接:
conn.Open();

可能產(chǎn)生的異常:
2.1. 連接失敗:地址不對,服務(wù)沒開,沒目標(biāo)數(shù)據(jù)庫
2.2. xx 登錄失敗:賬號不對、權(quán)限不足
2.3. 不支持關(guān)鍵字 xxx:連接字符串錯(cuò)誤


3. 連接字符串:
3.1. 地址、數(shù)據(jù)庫、賬號、密碼
3.2. Data Source=服務(wù)器地址; Initial Catalog=數(shù)據(jù)庫名; User Id=賬號; Password=密碼
3.3. server=服務(wù)器地址; database=數(shù)據(jù)庫名; uid=賬號; pwd=密碼


4. 連接實(shí)例:
string connStr = "server=.;database=MySchool;uid=sa;pwd=sa";
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
conn.Close();


三、Command (命令執(zhí)行對象)
1. 創(chuàng)建語法:
SqlCommand comm = new SqlCommand();
comm.CommandText = "SQL語句"; // 要執(zhí)行什么SQL?
comm.Connection = conn; // 在哪執(zhí)行?
// 或簡寫為:
SqlCommand comm = new SqlCommand(sql, conn);


2. 執(zhí)行
2.1. ExecuteScalar()
2.2. ExecuteReader()
2.3. ExecuteNonQuery()


3. comm.ExecuteScalar():
3.1. Command開始執(zhí)行目標(biāo)的SQL語句,并獲取數(shù)據(jù)庫返回的結(jié)果
3.2. 只獲取結(jié)果中的首行首列
3.3. 適用情況:
3.3.1. 聚合函數(shù):count、sum、max、min、avg
3.3.2. 根據(jù)條件查詢某一列的值


四、示例:查詢所有學(xué)生數(shù)量
// 1. 創(chuàng)建連接并打開
string connStr = "server=.;database=MySchool;uid=sa;pwd=sa";
SqlConnection conn = new SqlConnection(connStr);
conn.Open();

// 2. 創(chuàng)建執(zhí)行對象
string sql = "select count(1) from Student";
SqlCommand comm = new SqlCommand(sql, conn);

// 3. 執(zhí)行并返回結(jié)果
int count = (int)comm.ExecuteScalar();
// 或:
int count = Convert.ToInt32(comm.ExecuteScalar());

// 4. 關(guān)閉連接
conn.Close();


五、示例:根據(jù)年級編號查詢年級名稱
public string SelectGradeNameById(int gradeId)
{
string name = null;

// SQL語句
string sql = string.Format("SELECT GradeName FROM Grade WHERE GradeId={0}", gradeId);
SqlConnection conn = new SqlConnection(connStr); // 1. 創(chuàng)建連接
SqlCommand comm = new SqlCommand(sql, conn); // 2. 創(chuàng)建執(zhí)行對象
conn.Open(); // 3. 打開連接
name = comm.ExecuteScalar().ToString(); // 4. 執(zhí)行并獲取結(jié)果
conn.Close(); // 5. 關(guān)閉連接

return name;
}


六、示例:根據(jù)學(xué)生編號查詢學(xué)生姓名
public string SelectStudentNameByNo(string studentNo)
{
string name = null;

//SQL語句
string sql = string.Format("SELECT StudentName FROM Student WHERE StudentNo='{0}'", studentNo);

SqlConnection conn = new SqlConnection(connStr); // 1. 創(chuàng)建連接
SqlCommand comm = new SqlCommand(sql, conn); // 2. 創(chuàng)建執(zhí)行對象
conn.Open(); // 3. 打開連接
name = comm.ExecuteScalar().ToString(); // 4. 執(zhí)行并獲取結(jié)果
conn.Close(); // 5. 關(guān)閉連接

return name;
}


七、SQL執(zhí)行常見錯(cuò)誤
1. 不支持關(guān)鍵 xxx
2. xxx 附近有語法錯(cuò)誤
SQL語句錯(cuò)了
3. 列名 xxx 無效
SQL語句錯(cuò)了
4. Command需要一個(gè)已經(jīng)打開的Connection
連接未打開


八、示例:管理員登錄 (根據(jù)賬號和密碼,查詢?nèi)藬?shù))
public int AdminLogin(string username, string password)
{
int count = -1;

// SQL語句
string sql = " SELECT COUNT(1) FROM Admin WHERE Username='{0}' AND Password='{1}' ";
sql = string.Format(sql, username, password);

SqlConnection conn = new SqlConnection(connStr); // 1. 創(chuàng)建連接
SqlCommand comm = new SqlCommand(sql, conn); // 2. 創(chuàng)建執(zhí)行對象
conn.Open(); // 3. 打開連接
count = Convert.ToInt32(comm.ExecuteScalar()); // 4. 執(zhí)行并獲取結(jié)果
conn.Close(); // 5. 關(guān)閉連接

return count;
}

轉(zhuǎn)載于:https://www.cnblogs.com/lecj2498/p/8185517.html

總結(jié)

以上是生活随笔為你收集整理的ADO.NET笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。