307
技術社區[雲棲]
C# 連接SQLServer數據庫及登錄驗證知識
最近在做聯係數據庫的係統項目,這裏重新回顧了一些數據庫的知識,主要是使用VS2012與SQL Server 2012簡單的做了下麵兩個數據庫的應用,雖然比較簡單,但我認為這是非常有用的知識,尤其對剛接觸這樣的係統知識的同學,同時也鞏固了自己的知識.
一.VS簡單連接數據庫
使用DataGridView控件(顯示和編輯不同數據類型的表格數據)來顯示數據庫中的數據,主要步驟是:先定義連接數據庫和查詢語句,再使用SqlConnection建立數據庫,SqlDataAdapter連接數據庫和查詢命令,最後獲取數據並顯示在DataGridView控件上即可.運行結果如下圖所示:
源程序:C#建立一個Windows窗體程序,點擊窗體空白處生成Load..填寫代碼.
//新加命名空間 using System.Data.SqlClient; using System.Reflection; private void Form1_Load(object sender, EventArgs e) { //定義數據內存中緩存,後麵填充數據使用 DataSet ds = new DataSet(); //定義數據庫連接語句:服務器=.(本地) 數據庫名=TelephoneMS(手機管理係統) string consqlserver = "Data Source=.;Initial Catalog=TelephoneMS;Integrated Security=True;"; //定義SQL查詢語句 string sql = "select * from Users"; //定義SQL Server連接對象 SqlConnection con = new SqlConnection(consqlserver); //數據庫命令和數據庫連接 SqlDataAdapter da = new SqlDataAdapter(sql, con); try { da.Fill(ds); //填充數據 if (ds.Tables[0].Rows.Count > 0) //判斷是否符合條件的數據記錄 { dataGridView1.DataSource = ds.Tables[0]; //獲取數據源賦值數據庫控件 } } catch (Exception msg) { throw new Exception(msg.ToString()); //異常處理 } finally { con.Close(); //關閉連接 con.Dispose(); //釋放連接 da.Dispose(); //釋放資源 } }
數據庫中對應的代碼和結果如下:
-------創建數據庫:手機銷售管理係統(TelePhone management system)-------- create database TelephoneMS --創建數據庫 use TelephoneMS --使用數據庫 drop database TelephoneMS --刪除數據庫 ------------------------------------------------------------------- -------------------------建表1 Users(角色表)------------------------ --創建表 create table Users ( username varchar(20) not null, --用戶名 userpwd varchar(20) not null, --用戶密碼 userid varchar(20) not null, --用戶編號 userrole varchar(20) not null --用戶權限 ) --刪除表 drop table Users --清空表中所有數據 truncate table Users --設置主鍵:username(用戶名) alter table Users add constraint pk_users primary key(username) --設置外鍵:userid(用戶編號) alter table Users add constraint fk_users foreign key(userid) references UserInfo (userid) --------------------------------------------------------------------- ----------------------------(試驗)插入數據查詢-------------------------- insert into Users (username,userpwd,userid,userrole) values('admin','123456','000001','adminst'); insert into Users (username,userpwd,userid,userrole) values('Eastmount','eastmount','000002','manager'); select * from Users ----------------------------------------------------------------------
二.數據庫簡單登錄驗證
在做係統中通常需要對用戶名和密碼進行簡單的登錄驗證,下麵是簡單的登錄驗證知識.運行結果如下:
主要思想是通過判斷輸入用戶名和密碼textbox數據在數據庫中查詢,結果存在即能實現.代碼如下:
//新加命名空間 using System.Data.SqlClient; using System.Reflection; //點擊"登錄"按鈕實現數據庫驗證登錄功能 private void button1_Click(object sender, EventArgs e) { //字符串賦值:用戶名 密碼 string username = textBox1.Text.Trim(); string userpwd = textBox2.Text.Trim(); //定義數據庫連接語句:服務器=.(本地) 數據庫名=TelephoneMS(手機管理係統) string consqlserver = "Data Source=.;Initial Catalog=TelephoneMS;Integrated Security=True;"; //定義SQL查詢語句:用戶名 密碼 string sql = "select * from Users where username='" + username + "' and userpwd='" + userpwd + "'"; //定義SQL Server連接對象 打開數據庫 SqlConnection con = new SqlConnection(consqlserver); con.Open(); //定義查詢命令:表示對數據庫執行一個SQL語句或存儲過程 SqlCommand com = new SqlCommand(sql, con); //執行查詢:提供一種讀取數據庫行的方式 SqlDataReader sread = com.ExecuteReader(); try { //如果存在用戶名和密碼正確數據執行進入係統操作 if (sread.Read()) { MessageBox.Show("登錄成功"); } else { MessageBox.Show("請輸入正確的用戶名和密碼"); } } catch (Exception msg) { throw new Exception(msg.ToString()); //處理異常信息 } finally { con.Close(); //關閉連接 con.Dispose(); //釋放連接 sread.Dispose(); //釋放資源 } }
實際係統中,彈出的界麵“登錄成功”可以通過下麵的代碼替換:
Main Mwind = new Main(); //顯示登錄主菜單 this.Hide(); //隱藏當前登陸窗體 Mwind.Show(); //顯示主登陸窗體
希望這些知識點能幫助鞏固和學習C#連接數據庫知識,如果敘述中有錯誤或不足之處見諒!
(By:Eastmount 2013-9-2https://blog.csdn.net/eastmount/)
最後更新:2017-04-03 16:49:04