C#連線資料庫製作簡單登入介面
阿新 • • 發佈:2019-01-11
目標:視覺化的登入介面,可實現登入,註冊,資料來源為SQL server資料庫,實現資料庫表格內容的讀取,寫入
C#整合開發環境為visual studio2017
資料庫為SQL server資料庫
登入介面最終效果如下圖:
註冊介面最終效果如下圖:
新增按鈕事件響應之前,先連線資料庫
首先在SQL server中新建一個庫,以及一個表,SQL語句如下
CREATE DATABASE DENGLU;
CREATE TABLE PEOPLE
(
SID CHAR(10) PRIMARY KEY,
SKEY CHAR(16)
);
我先在資料庫中寫入一個使用者,SQL語句如下
INSERT INTO PEOPLE(SID,SKEY) VALUES ('BTboay','123456'); SELECT * FROM PEOPLE
之後在visual studio中新增新資料來源
選擇資料庫然後直接下一步
選擇資料集(反正我只有一個選項),然後下一步
選擇新建連線
選擇資料來源和伺服器,輸入資料庫名稱,選擇好後可以測試連線,測試成功後點確定
直接下一步(這裡儲存一下應用程式的連線字串,也就是下面那一長串字元)
下一步就好
之後選擇希望包含的資料庫物件(這裡只用到了表),之後就可連線了
資料庫連線成功,登入介面窗體元件新增好後,為按鈕新增事件響應(登入:button2,註冊:button1)
程式碼如下:
private void button2_Click(object sender, EventArgs e) { String username, password; username = textBox1.Text; password = textBox2.Text; String myconn = @"Data Source=LAPTOP-41U2RG9N\BTBOAY;Initial Catalog=ZH;Integrated Security=True";//資料庫例項連線字串 SqlConnection sqlConnection = new SqlConnection(myconn);//新建資料庫連線例項 sqlConnection.Open();//開啟資料庫連線 String sql = "select SID,Skey from Name where SID='" + username + "'and Skey='" + password + "'";//SQL語句實現表資料的讀取 SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection); SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(); if (sqlDataReader.HasRows)//滿足使用者名稱與密碼一致,進入下一個介面 { Form3 form3 = new Form3(); form3.Show(); this.Hide(); } else//如果登入失敗,詢問是否註冊新使用者 { DialogResult dr=MessageBox.Show("是否註冊新使用者?","登入失敗",MessageBoxButtons.YesNo,MessageBoxIcon.Question); if (dr==DialogResult.Yes)//開啟註冊介面 { Form2 form2 = new Form2(); form2.Show(); this.Hide(); } else { this.Show(); } } } private void button1_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.Show(); this.Hide(); } } }
登入介面程式碼如下(確定:button1,返回登入:button2):
一個簡單的登入介面就完成了private void button1_Click(object sender, EventArgs e) { String username, password,repassword; username = textBox1.Text; password = textBox2.Text; repassword = textBox3.Text; if (password==repassword)//兩次輸入的密碼一致 { string myConn = @"Data Source=LAPTOP-41U2RG9N\BTBOAY;Initial Catalog=ZH;Integrated Security=True"; SqlConnection sqlConnection = new SqlConnection(myConn); //例項化連線物件 sqlConnection.Open(); String sql = "INSERT INTO Name(SID,Skey) VALUES('" + username + "','" + password + "')";//SQL語句向表中寫入資料 SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection); sqlCommand.ExecuteNonQuery(); MessageBox.Show("註冊成功"); } else { MessageBox.Show("密碼不一致"); } } private void button2_Click(object sender, EventArgs e)//返回登入介面 { this.Close(); Form1 form = new Form1(); form.Show(); } } }