C#使用Winform連接SQL Server數(shù)據(jù)庫(kù)的詳細(xì)步驟
一. 在 WinForms 應(yīng)用程序中連接 SQL Server,可以按照以下步驟進(jìn)行:
1.創(chuàng)建連接字符串
string connectionString = "Server=your_server_name;Database=your_database_name;User Id=your_username;Password=your_password;";
若server=. 則代表當(dāng)前使用的計(jì)算機(jī)(本機(jī))
2.使用SqlConnection類創(chuàng)建數(shù)據(jù)庫(kù)連接并打開
//創(chuàng)建連接 SqlConnection conn = new SqlConnection(strConn); //打開數(shù)據(jù)庫(kù)連接 conn.Open();
后面可加一個(gè)MessageBox.Show("數(shù)據(jù)庫(kù)連接成功"); 用于檢驗(yàn)數(shù)據(jù)庫(kù)是否連接成功
3.SqlCommand類:允許對(duì)數(shù)據(jù)庫(kù)表做增刪改查等操作
需要兩個(gè)參數(shù),第一個(gè)參數(shù): sql語(yǔ)句 第二個(gè)參數(shù):SqlConnection對(duì)象
string sql = "select * from CrabBox"; SqlCommand cmd = new SqlCommand(sql,conn);
4.SqlDataReader類:獲取查詢返回的結(jié)果集
SqlDataReader sdr = cmd.ExecuteReader(); //通過(guò)while循環(huán)獲取sdr里面的數(shù)據(jù) while (sdr.Read()) { //讀取數(shù)據(jù)庫(kù)表的數(shù)據(jù) //MessageBox.Show("蟹盒ID:" + sdr["BoxID"]); //將數(shù)據(jù)庫(kù)讀取出來(lái)的內(nèi)容顯示在label標(biāo)簽中 label1.Text = label1.Text + "\n" +"蟹盒ID:" + sdr["BoxID"]; }
說(shuō)明:sdr[""]里面為數(shù)據(jù)庫(kù)表的列名,代碼運(yùn)行結(jié)果為顯示數(shù)據(jù)庫(kù)表中某一列的數(shù)據(jù)
給出了兩種顯示例子,一種為MessageBox.Show,以彈框的形式顯示;另一種為在label組件中顯示;都是比較簡(jiǎn)單的例子。
5.讀取完數(shù)據(jù)后關(guān)閉connection的連接
conn.Close();
二. 如果連接數(shù)據(jù)庫(kù)時(shí)出現(xiàn)“登錄失敗”的異常
假設(shè)使用的用戶名為sa,
1.通常原因
錯(cuò)誤的用戶名或密碼:確認(rèn)你使用的
sa
用戶名和密碼是否正確。可以嘗試重新輸入密碼或檢查連接字符串中的用戶憑據(jù)。SQL Server 服務(wù)未啟動(dòng):確保 SQL Server 實(shí)例正在運(yùn)行。可以通過(guò) SQL Server Management Studio (SSMS) 或服務(wù)管理器檢查 SQL Server 服務(wù)的狀態(tài)。
SQL Server 配置問(wèn)題:檢查 SQL Server 是否允許
sa
用戶進(jìn)行登錄。確保 SQL Server 配置允許 SQL Server 身份驗(yàn)證模式(而不是僅 Windows 身份驗(yàn)證模式)。SQL Server 實(shí)例名稱或連接字符串錯(cuò)誤:確認(rèn)你在連接字符串中指定的 SQL Server 實(shí)例名稱是正確的??赡苄枰▽?shí)例名稱或使用正確的服務(wù)器地址。
網(wǎng)絡(luò)問(wèn)題:如果 SQL Server 是遠(yuǎn)程實(shí)例,確保網(wǎng)絡(luò)連接正常,沒(méi)有防火墻阻擋連接。
賬戶被禁用:檢查
sa
用戶是否被禁用??梢酝ㄟ^(guò) SQL Server Management Studio 連接到數(shù)據(jù)庫(kù),然后檢查 SQL Server 的安全設(shè)置。
2.解決步驟
驗(yàn)證連接字符串: 確保你的連接字符串正確
檢查 SQL Server 服務(wù):
- 打開 SQL Server Configuration Manager,確保 SQL Server 服務(wù)正在運(yùn)行。
- 如果 SQL Server 實(shí)例未運(yùn)行,嘗試啟動(dòng)它。
檢查身份驗(yàn)證模式:
- 使用 SQL Server Management Studio 連接到數(shù)據(jù)庫(kù)。
- 右鍵點(diǎn)擊服務(wù)器,選擇“屬性”。
- 轉(zhuǎn)到“安全性”頁(yè),確保“SQL Server 和 Windows 身份驗(yàn)證模式”被選中。
檢查
sa
用戶:- 在 SQL Server Management Studio 中,展開“安全性”文件夾,選擇“登錄名”。
- 找到
sa
用戶,右鍵點(diǎn)擊并選擇“屬性”。 - 確保
sa
用戶沒(méi)有被禁用,并且密碼正確。
網(wǎng)絡(luò)和防火墻設(shè)置:
- 如果 SQL Server 是遠(yuǎn)程的,確保網(wǎng)絡(luò)設(shè)置允許連接,并且沒(méi)有防火墻阻止 SQL Server 端口(默認(rèn)為 1433)。
三. 在DataGridView表格容器控件中顯示數(shù)據(jù)庫(kù)中表的數(shù)據(jù)
1.使用SqlDataAdapter類
簡(jiǎn)單示例代碼(窗體中需要有一個(gè)Button和DataGridView控件):
private void button2_Click(object sender, EventArgs e) { string strConn = "server=.;database=CrabFarmDB;User ID=sa;Password=admin123"; SqlConnection conn = new SqlConnection(strConn); conn.Open(); MessageBox.Show("數(shù)據(jù)庫(kù)連接成功"); string sql = "select * from CrabBox"; //在這里操作gridview //這里傳入的strConn相當(dāng)于數(shù)據(jù)源與sql數(shù)據(jù)庫(kù)之間的一種橋接器 SqlDataAdapter da = new SqlDataAdapter(sql, strConn); DataSet ds = new DataSet();//相當(dāng)于一個(gè)數(shù)據(jù)集 //開始加載數(shù)據(jù)源 da.Fill(ds); //開始將數(shù)據(jù)集與我們的grid控件做關(guān)聯(lián) dataGridView1.DataSource = ds.Tables[0]; //讀取完數(shù)據(jù)后關(guān)閉connection的連接 conn.Close(); }
以上就是C#使用Winforms連接SQL Server數(shù)據(jù)庫(kù)的詳細(xì)步驟的詳細(xì)內(nèi)容,更多關(guān)于C# Winforms連接SQL Server的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Unity Undo實(shí)現(xiàn)原理和使用方法詳解
本文將詳細(xì)介紹Unity Undo實(shí)現(xiàn)原理和使用方法,并提供多個(gè)使用例子,幫助開發(fā)者更好地理解和應(yīng)用該功能,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07C#實(shí)現(xiàn)按照指定長(zhǎng)度在數(shù)字前補(bǔ)0方法小結(jié)
這篇文章主要介紹了C#實(shí)現(xiàn)按照指定長(zhǎng)度在數(shù)字前補(bǔ)0方法,實(shí)例總結(jié)了兩個(gè)常用的數(shù)字補(bǔ)0的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04C# listview 點(diǎn)擊列頭排序的實(shí)例
下面小編就為大家?guī)?lái)一篇C# listview 點(diǎn)擊列頭排序的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01C#實(shí)現(xiàn)模擬ATM自動(dòng)取款機(jī)功能
這篇文章介紹了C#實(shí)現(xiàn)模擬ATM自動(dòng)取款機(jī)功能的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08基于C#實(shí)現(xiàn)ModbusTCP服務(wù)器接口的方法
ModbusTCP服務(wù)器的本質(zhì)就是TCP服務(wù)器,根據(jù)識(shí)別ModbusTCP請(qǐng)求報(bào)文,返回對(duì)應(yīng)的ModbusTCP報(bào)文,今天給大家分享一下,如何基于C#來(lái)ModbusTCP服務(wù)器接口,需要的朋友可以參考下2025-01-01C#使用struct類型作為泛型Dictionary<TKey,TValue>的鍵
這篇文章介紹了C#使用struct類型作為泛型Dictionary<TKey,TValue>鍵值的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08C#實(shí)現(xiàn)的簡(jiǎn)單整數(shù)四則運(yùn)算計(jì)算器功能示例
這篇文章主要介紹了C#實(shí)現(xiàn)的簡(jiǎn)單整數(shù)四則運(yùn)算計(jì)算器功能,涉及C#界面布局、事件響應(yīng)及數(shù)值運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下2017-09-09