C#連接mysql數據庫實現登陸注冊界面


環境:Mysql 5.7.28 + VS2017

一、配置並測試Mysql數據庫

1. 安裝mysql

去mysql官網下載安裝,可見安裝教程

2.  在VS中添加引用

項目-->添加引用

 

選擇“瀏覽”-->找到mysql安裝文件夾中的MySql.Data.dll

 

 

3. 測試

添加 添加using MySql.Data.MySqlClient

using MySql.Data.MySqlClient;

String connetStr = "server=localhost;port=3306;user=root;password=root; database=mydb;";
// server=127.0.0.1/localhost 代表本機,端口號port默認是3306可以不寫
MySqlConnection conn = new MySqlConnection(connetStr);
try
{    
      conn.Open();//建立連接,可能出現異常,使用try catch語句
      Console.WriteLine("已經建立連接");
      //在這里可以使用代碼對數據庫進行增刪查改的操作
}
catch (MySqlException ex)
{
      Console.WriteLine(ex.Message);//有錯則報出錯誤
}
finally
{
      conn.Close();//關閉通道
}

二、創建數據庫

mysql> create table user(
    -> id int primary key,
    -> user varchar(50) not null,
    -> pass varchar(50) not null
    -> );

設置主鍵自增

mysql> alter table user modify id int auto_increment;

三、登陸與注冊功能

        // 登陸
        private void button1_Click(object sender, EventArgs e)
        {
            String username, password;
            username = textBox1.Text;
            password = textBox2.Text;

            String connetStr = "server=localhost;port=3306;user=root;password=123456; database=login;";
            MySqlConnection conn = new MySqlConnection(connetStr);
            conn.Open();

            String sql = "select user,pass from user where user='" + username + "'and pass='" + password + "'";//SQL語句實現表數據的讀取
            MySqlCommand cmd = new MySqlCommand(sql, conn);
            MySqlDataReader sqlDataReader = cmd.ExecuteReader();
            if (sqlDataReader.HasRows)  //如果能查到,說明該用戶密碼存在
            {
                //MessageBox.Show("登陸成功");

                closeflag = true;
                this.Close();
            }
            else
            {
                MessageBox.Show("賬號或密碼錯誤或未注冊");
            }
            conn.Close();
        }

        // 注冊
        private void button2_Click(object sender, EventArgs e)
        {
            String username, password;
            username = textBox1.Text;
            password = textBox2.Text;

            String connetStr = "server=localhost;port=3306;user=root;password=123456; database=login;";
            MySqlConnection conn = new MySqlConnection(connetStr);
            conn.Open();

            String sql = "INSERT INTO user(user,pass) VALUES('" + username + "','" + password + "')"; // 沒有判斷重復插入
            MySqlCommand cmd = new MySqlCommand(sql, conn);
            cmd.ExecuteNonQuery();
            MessageBox.Show("注冊成功");
            conn.Close();
        }

四、多窗口控制

簡單點的:如何關閉一個窗口,同時打開另一個窗口?

在.net的WinForm程序中,如果是直接起動的Form作為主窗口,那么這個主窗口是不能關閉的,因為它維護了一個Windows消息循環,
它一旦關閉了就等於聲明整個應用程序結束,所以新打開的窗口也就被自動關閉了。因此要關閉的窗口不能用Application.Run創建。
如何使用Hide()(只是隱藏,其實進程還被占用着)之類或者Close()(這個操作會把所有窗體關閉,因為屬於同一個線程)是達不到我們需要的效果的。
要在關閉一個窗口的同時打開另一個窗口,可以按如下做法:

先在第一個窗口聲明一個公共的bool變量並賦值為true:
如public bool closeflag = true;
在program類里運行第二個窗口,主要代碼:

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//Application.Run(new Form1());
Form1 form1 = new Form1();
form1.ShowDialog();   
if(form1.closeflag == true)
{
    Application.Run(new Form2());
}

然后在Form1的關閉的相關控件(如按鈕或什么的,就是要關閉這個窗口的控件)  將closeflag賦值為true,並調用this.close();關閉第一個窗口。

五、其他

如何設置密碼框?

設置textBox的屬性,將PasswordChar中寫入*即可。

 

 

參考鏈接:

1. https://blog.csdn.net/i_CodeBoy/article/details/79274498

2. https://zhuanlan.zhihu.com/p/44828065

3. https://www.cnblogs.com/xuliangxing/p/5984638.html

4. https://zhuanlan.zhihu.com/p/28401873

5. https://blog.csdn.net/qq_41398808/article/details/79772653

6. https://blog.csdn.net/shouhouxiaomuwu/article/details/11943831


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM