VS2022連接數據庫MySQL并進行基本的表的操作指南
vs2022中連接MySQL
1.連接MYSQL
2.添加MySQL的引用
環境配置
測試代碼
在vs里面運行sql語句
啟動vs2022,在菜單欄里面選擇視圖,打開服務器資源管理器
右鍵數據連接,點擊添加連接
然后發現有MySQL選項,進入里面配置數據庫的相關信息即可
配置信息
1.server name輸入MySQL的IP地址
localhost即本地
2.然后輸入MySQL的用戶名和密碼
3.Database的內容輸入test
添加MySQL的引用
環境配置
(1)打開mysql的安裝包,查看是否有include和lib兩個文件
(2)打開vs2020,新建工程,保存工程文件路徑
(3)將mysql的lib和include文件添加到工程路徑下
(4)打開VC++目錄,在包含目錄中,將mysql安裝文件中的include文件的路徑添加到包含目錄
(5)還在屬性頁上,打開 C/C++
(6)還是在屬性頁上,點開鏈接器選項,點擊常規,將mysql安裝文件夾中的lib文件路徑添加到附加庫目錄中:
(7)還是在屬性頁的鏈接器中,點擊第二項輸入,將libmysql.lib文件加進來,注意,這里直接把libmysql.lib這個依賴名加進xing,不要加路徑。這個文件也在mysql安裝文件夾中lib目錄下:
(8)將libmysql.dll放到該文件夾下
測試代碼
#include <stdio.h>#include <WinSock.h>#include <Windows.h>#include <mysql.h>#include<iostream>using namespace std;MYSQL mysql; //mysql連接MYSQL_RES* res; //一個結果集結構體 MYSQL_ROW row; //char** 二維數組,存放一條條記錄 const char DataBase_UserName[] = "root"; //數據庫用戶名usernameconst char DataBase_Password[] = "@"; //數據庫密碼,填自己的密碼const char DataBase_Host[] = "localhost"; //數據庫連接地址//注意有時候使用主機ip會報錯,此時可以將ip改為localhostconst char DataBase_Name[] = "test_db"; //database nameunsigned int DataBase_Port = 3306; //server portbool ConnectDatabase(); //函數申明void FreeConnect(); //釋放資源void main(){<!--{C}%3C!%2D%2D%20%2D%2D%3E-->ConnectDatabase(); //連接數據庫//查詢數據//選擇該數據庫中的一個表的所有數據 sheet8 是一個數據表mysql_query(&mysql, "SELECT * from sheet8"); //獲取結果集res = mysql_store_result(&mysql);//顯示數據//給ROW賦值,判斷ROW是否為空,不為空就打印數據。while (row = mysql_fetch_row(res)){<!--{C}%3C!%2D%2D%20%2D%2D%3E-->printf("%s ", row[0]);//打印IDprintf("%s ", row[1]);//打印IDcout << endl;}getchar();}bool ConnectDatabase(){<!--{C}%3C!%2D%2D%20%2D%2D%3E-->//初始化mysqlmysql_init(&mysql); //連接mysql,數據庫if (!(mysql_real_connect(&mysql, DataBase_Host, DataBase_UserName, DataBase_Password, DataBase_Name, DataBase_Port, NULL, 0))) //中間分別是主機,用戶名,密碼,數據庫名,端口號(可以寫默認0或者3306等),可以先寫成參數再傳進去{<!--{C}%3C!%2D%2D%20%2D%2D%3E-->printf("Error connecting to database:%s\n", mysql_error(&mysql));return false;}else{<!--{C}%3C!%2D%2D%20%2D%2D%3E-->MessageBoxA(NULL, "連接MYSQL數據成功!", "消息", MB_OK);printf("Connected...\n");return true;}}//釋放資源void FreeConnect(){<!--{C}%3C!%2D%2D%20%2D%2D%3E-->//釋放資源//mysql_free_result(res);mysql_close(&mysql);}
使用DataGridView控件顯示數據庫中的數據 核心代碼
private void AllSearch_Load(object sender, EventArgs e){MySqlConnection conn;string constr = "server=localhost;database=data;uid=choujieyun;pwd=12345678;";conn = new MySqlConnection(constr);conn.Open();MySqlCommand co = new MySqlCommand("select * from 表名;", conn);MySqlDataAdapter adapt = new MySqlDataAdapter();adapt.SelectCommand = co;DataSet ds = new DataSet();adapt.Fill(ds, "學生表"); dataGridView1.DataSource = ds.Tables["學生表"];DataSet ds = new DataSet();adapt.Fill(ds, "課程表"); dataGridView1.DataSource = ds.Tables["課程表"]; DataSet ds = new DataSet();adapt.Fill(ds, "教師表"); dataGridView1.DataSource = ds.Tables["教師表"]; DataSet ds = new DataSet();adapt.Fill(ds, "成績表"); dataGridView1.DataSource = ds.Tables["成績表"];conn.Close();}
1.學生表
2.課程表
3.教師表
4.成績表
實現基本的crud操作
核心代碼:
//引入的命名空間using?System.Data.SqlClient;//用于SQL?Sever數據訪問的命名空間using?System.Data;???????????????//DataSet類的命名空間using?System.Windows.Forms;??//DataGridView控件類的命名空間//數據庫查詢//執行指定的SQL命令語句(insert,delete,update等),并返回命令所影響的行數public?static?int?executeCommand(string?sqlStr){????SqlConnection?sqlConnection1?=?new?SqlConnection("server=dell-PC;database=11071312HotelSys;uid=sa;pwd=xiaoyi9421");//創建數據庫連接(字符串中是我個人的數據庫信息)????sqlConnection1.Open();??????//打開數據庫連接????SqlCommand?sqlCommand1?=?new?SqlCommand(sqlStr,?sqlConnection1);??//執行SQL命令????int?Succnum?=?sqlCommand1.ExecuteNonQuery();????return?Succnum;}//查詢(select)指定的數據記錄(多行多列),并填充到數據控件DataGridView中public?static?void?queryDataToGrid(string?sqlStr,?DataGridView?dataGridView1){????SqlConnection?sqlConnection1?=?new?SqlConnection("server=dell-PC;database=11071312HotelSys;uid=sa;pwd=xiaoyi9421");//創建數據庫連接????SqlDataAdapter?sqlDataAdapter1?=?new?SqlDataAdapter(sqlStr,?sqlConnection1);//利用已創建好的sqlConnection1,創建數據適配器sqlDataAdapter1????DataSet?dataSet1?=?new?DataSet();??//創建數據集對象????sqlDataAdapter1.Fill(dataSet1);????//執行查詢,查詢的結果存放在數據集里????dataGridView1.DataSource?=?dataSet1.Tables[0];?//把數據集中的查詢結果綁定dataGridView1中}//查詢(select)指定的數據(單個數據,假設為string類型),并返回public?static?string?queryData(string?sqlStr){????SqlConnection?sqlConnection1?=?new?SqlConnection("server=dell-PC;database=11071312HotelSys;uid=sa;pwd=xiaoyi9421");//創建數據庫連接????SqlDataAdapter?sqlDataAdapter1?=?new?SqlDataAdapter(sqlStr,?sqlConnection1);//利用已創建好的sqlConnection1,創建數據適配器sqlDataAdapter1????DataSet?dataSet1?=?new?DataSet();??//創建數據集對象????sqlDataAdapter1.Fill(dataSet1);????//執行查詢,查詢的結果存放在數據集里????return?dataSet1.Tables[0].Rows[0]["列名"].ToString();?//把查詢結果的第一行指定列下的數據以string類型返回}//數據庫添加private?void?btn_add_Click(object?sender,?EventArgs?e)????????{????????????string?sql?=?"insert?into?課程表(CourseId,CourseName,Teald)?values(‘0004",‘物理",‘0004");????????????????int?i=help.changeSqlData(sql);????????????if?(i?==?0)?MessageBox.Show("添加失敗",?"提示:");????????????else?MessageBox.Show("添加成功",?"提示:");????????}//數據庫刪除private?void?btn_delete_Click(object?sender,?EventArgs?e)? ? ? ? {????????????string?sql?=?"delete?from 學生表?where StuId="0008";????????????int?i=help.changeSqlData(sql);????????????if?(i?==?0)?MessageBox.Show("刪除失敗",?"提示:");????????????else?MessageBox.Show("刪除成功",?"提示:");????????}//數據庫修改private?void?btn_update_Click(object?sender,?EventArgs?e)? ? ? ? {????????????string?sql?=?"update 學生表?set StuAge="19" where StuId="0008";????????????int?i?=?help.changeSqlData(sql);????????????if?(i?==?0)?MessageBox.Show("修改失敗",?"提示:");????????????else?MessageBox.Show("修改成功",?"提示:");????????}
增加一行數據(課程表中增加一行數據)
刪除一行數據(刪除學生表中的一行數據)
修改一條數據(將學生表中的一條數據修改)
查詢某一條數據(查詢成績表中學號為0005的同學的成績)
實驗總結:
本次實驗通過使用C#連接數據庫MySQL,并且使用控件dataGridView控件顯示表中的數據,實現基本的增刪改查等數據庫操作,在本次實驗連接數據庫操作的過程中出現vs2022無法添加MySQL數據庫的問題,最后在網上找到解決方案,添加數據庫成功,在進行數據的增刪改查的操作時,也出現了數據庫的報錯,無法執行操作,導致無法呈現正確的結果,在經過一番代碼的修改,調式后終于正常顯示結果。
總結
到此這篇關于VS2022連接數據庫MySQL并進行基本的表的操作指南的文章就介紹到這了,更多相關VS2022連接MySQL內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!
