閱讀307 返回首頁    go 技術社區[雲棲]


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

  上一篇:go HDU 3977 求斐波那契循環節
  下一篇:go 簡明Vim練級攻略