C#使用Winform連接SQL Server數(shù)據(jù)庫的詳細(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ù)庫連接并打開
//創(chuàng)建連接 SqlConnection conn = new SqlConnection(strConn); //打開數(shù)據(jù)庫連接 conn.Open();
后面可加一個(gè)MessageBox.Show("數(shù)據(jù)庫連接成功"); 用于檢驗(yàn)數(shù)據(jù)庫是否連接成功
3.SqlCommand類:允許對(duì)數(shù)據(jù)庫表做增刪改查等操作
需要兩個(gè)參數(shù),第一個(gè)參數(shù): sql語句 第二個(gè)參數(shù):SqlConnection對(duì)象
string sql = "select * from CrabBox"; SqlCommand cmd = new SqlCommand(sql,conn);
4.SqlDataReader類:獲取查詢返回的結(jié)果集
SqlDataReader sdr = cmd.ExecuteReader();
//通過while循環(huán)獲取sdr里面的數(shù)據(jù)
while (sdr.Read())
{
//讀取數(shù)據(jù)庫表的數(shù)據(jù)
//MessageBox.Show("蟹盒ID:" + sdr["BoxID"]);
//將數(shù)據(jù)庫讀取出來的內(nèi)容顯示在label標(biāo)簽中
label1.Text = label1.Text + "\n" +"蟹盒ID:" + sdr["BoxID"];
}說明:sdr[""]里面為數(shù)據(jù)庫表的列名,代碼運(yùn)行結(jié)果為顯示數(shù)據(jù)庫表中某一列的數(shù)據(jù)
給出了兩種顯示例子,一種為MessageBox.Show,以彈框的形式顯示;另一種為在label組件中顯示;都是比較簡(jiǎn)單的例子。
5.讀取完數(shù)據(jù)后關(guān)閉connection的連接
conn.Close();
二. 如果連接數(shù)據(jù)庫時(shí)出現(xiàn)“登錄失敗”的異常
假設(shè)使用的用戶名為sa,
1.通常原因
錯(cuò)誤的用戶名或密碼:確認(rèn)你使用的
sa用戶名和密碼是否正確。可以嘗試重新輸入密碼或檢查連接字符串中的用戶憑據(jù)。SQL Server 服務(wù)未啟動(dòng):確保 SQL Server 實(shí)例正在運(yùn)行??梢酝ㄟ^ SQL Server Management Studio (SSMS) 或服務(wù)管理器檢查 SQL Server 服務(wù)的狀態(tài)。
SQL Server 配置問題:檢查 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ò)問題:如果 SQL Server 是遠(yuǎn)程實(shí)例,確保網(wǎng)絡(luò)連接正常,沒有防火墻阻擋連接。
賬戶被禁用:檢查
sa用戶是否被禁用。可以通過 SQL Server Management Studio 連接到數(shù)據(jù)庫,然后檢查 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ù)庫。
- 右鍵點(diǎn)擊服務(wù)器,選擇“屬性”。
- 轉(zhuǎn)到“安全性”頁,確保“SQL Server 和 Windows 身份驗(yàn)證模式”被選中。
檢查
sa用戶:- 在 SQL Server Management Studio 中,展開“安全性”文件夾,選擇“登錄名”。
- 找到
sa用戶,右鍵點(diǎn)擊并選擇“屬性”。 - 確保
sa用戶沒有被禁用,并且密碼正確。
網(wǎng)絡(luò)和防火墻設(shè)置:
- 如果 SQL Server 是遠(yuǎn)程的,確保網(wǎng)絡(luò)設(shè)置允許連接,并且沒有防火墻阻止 SQL Server 端口(默認(rèn)為 1433)。
三. 在DataGridView表格容器控件中顯示數(shù)據(jù)庫中表的數(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ù)庫連接成功");
string sql = "select * from CrabBox";
//在這里操作gridview
//這里傳入的strConn相當(dāng)于數(shù)據(jù)源與sql數(shù)據(jù)庫之間的一種橋接器
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ù)庫的詳細(xì)步驟的詳細(xì)內(nèi)容,更多關(guān)于C# Winforms連接SQL Server的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Unity的IPostBuildPlayerScriptDLLs實(shí)用案例深入解析
這篇文章主要為大家介紹了Unity的IPostBuildPlayerScriptDLLs實(shí)用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
C#自定義控件實(shí)現(xiàn)TextBox禁止粘貼的方法
這篇文章主要介紹了C#自定義控件實(shí)現(xiàn)TextBox禁止粘貼的方法,結(jié)合具體實(shí)例形式分析了C#自定義控件的創(chuàng)建、使用方法及TextBox禁止粘貼的實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-06-06
Unity3D開發(fā)之獲取所有的子對(duì)象的方法詳解
這篇文章主要為大家詳細(xì)介紹了三種Unity3D中獲取所有的子對(duì)象(child)的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-01-01
DataGridView設(shè)置單元格的提示內(nèi)容ToolTip
這篇文章介紹了DataGridView設(shè)置單元格提示內(nèi)容ToolTip的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02
C#面向?qū)ο筇卣鞯木唧w實(shí)現(xiàn)及作用詳解
所有的面相對(duì)象思想,歸根結(jié)底是為了簡(jiǎn)化代碼,減少代碼量,構(gòu)建更符合現(xiàn)實(shí)生活邏輯的程序代碼,從而減輕程序員的負(fù)擔(dān)。不能一味地或者說刻意地去使用面相對(duì)象的思想而忽略了程序所實(shí)現(xiàn)的功能或者框架,要根據(jù)實(shí)際情況2013-10-10
Unity?UGUI的GraphicRaycaster射線投射組件介紹使用
這篇文章主要為大家介紹了Unity?UGUI的GraphicRaycaster射線投射組件介紹使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07

