環境: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