最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VS2022連接數(shù)據(jù)庫MySQL并進(jìn)行基本的表的操作指南

 更新時間:2023年05月10日 12:40:01   作者:仇杰蕓  
鑒于MySQL數(shù)據(jù)庫的流行與強(qiáng)大,決定多學(xué)習(xí)使用,下面這篇文章主要給大家介紹了關(guān)于VS2022連接數(shù)據(jù)庫MySQL并進(jìn)行基本的表的操作指南,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下

vs2022中連接MySQL

1.連接MYSQL

2.添加MySQL的引用

環(huán)境配置

測試代碼

在vs里面運(yùn)行sql語句

啟動vs2022,在菜單欄里面選擇視圖,打開服務(wù)器資源管理器

右鍵數(shù)據(jù)連接,點(diǎn)擊添加連接

然后發(fā)現(xiàn)有MySQL選項(xiàng),進(jìn)入里面配置數(shù)據(jù)庫的相關(guān)信息即可

配置信息

1.server name輸入MySQL的IP地址

localhost即本地

2.然后輸入MySQL的用戶名和密碼

3.Database的內(nèi)容輸入test

添加MySQL的引用

環(huán)境配置

(1)打開mysql的安裝包,查看是否有include和lib兩個文件

 (2)打開vs2020,新建工程,保存工程文件路徑

(3)將mysql的lib和include文件添加到工程路徑下

 (4)打開VC++目錄,在包含目錄中,將mysql安裝文件中的include文件的路徑添加到包含目錄

(5)還在屬性頁上,打開 C/C++

(6)還是在屬性頁上,點(diǎn)開鏈接器選項(xiàng),點(diǎn)擊常規(guī),將mysql安裝文件夾中的lib文件路徑添加到附加庫目錄中:

(7)還是在屬性頁的鏈接器中,點(diǎn)擊第二項(xiàng)輸入,將libmysql.lib文件加進(jìn)來,注意,這里直接把libmysql.lib這個依賴名加進(jìn)xing,不要加路徑。這個文件也在mysql安裝文件夾中l(wèi)ib目錄下:

 (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; //一個結(jié)果集結(jié)構(gòu)體   
MYSQL_ROW row; //char** 二維數(shù)組,存放一條條記錄  
const char DataBase_UserName[] = "root";    //數(shù)據(jù)庫用戶名username
const char DataBase_Password[] = "@";   //數(shù)據(jù)庫密碼,填自己的密碼
const char DataBase_Host[] = "localhost";  //數(shù)據(jù)庫連接地址
//注意有時候使用主機(jī)ip會報(bào)錯,此時可以將ip改為localhost
const char DataBase_Name[] = "test_db";  //database name
unsigned int DataBase_Port = 3306;            //server port
bool ConnectDatabase(); //函數(shù)申明
void FreeConnect();   //釋放資源
void main()
{<!--{C}%3C!%2D%2D%20%2D%2D%3E-->
ConnectDatabase(); //連接數(shù)據(jù)庫
//查詢數(shù)據(jù)
//選擇該數(shù)據(jù)庫中的一個表的所有數(shù)據(jù) sheet8 是一個數(shù)據(jù)表
mysql_query(&mysql, "SELECT * from sheet8"); 
//獲取結(jié)果集
res = mysql_store_result(&mysql);
//顯示數(shù)據(jù)
//給ROW賦值,判斷ROW是否為空,不為空就打印數(shù)據(jù)。
while (row = mysql_fetch_row(res))
{<!--{C}%3C!%2D%2D%20%2D%2D%3E-->
printf("%s ", row[0]);//打印ID
printf("%s ", row[1]);//打印ID
cout << endl;
}
getchar();
}
bool ConnectDatabase()
{<!--{C}%3C!%2D%2D%20%2D%2D%3E-->
//初始化mysql
mysql_init(&mysql);   //連接mysql,數(shù)據(jù)庫
if (!(mysql_real_connect(&mysql, DataBase_Host, DataBase_UserName, DataBase_Password, DataBase_Name, DataBase_Port, NULL, 0))) //中間分別是主機(jī),用戶名,密碼,數(shù)據(jù)庫名,端口號(可以寫默認(rèn)0或者3306等),可以先寫成參數(shù)再傳進(jìn)去
{<!--{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數(shù)據(jù)成功!", "消息", 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控件顯示數(shù)據(jù)庫中的數(shù)據(jù) 核心代碼

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, "學(xué)生表");    
        dataGridView1.DataSource = ds.Tables["學(xué)生表"];
        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.學(xué)生表

 2.課程表

3.教師表

 4.成績表

實(shí)現(xiàn)基本的crud操作 

核心代碼:

//引入的命名空間
using?System.Data.SqlClient;//用于SQL?Sever數(shù)據(jù)訪問的命名空間
using?System.Data;???????????????//DataSet類的命名空間
using?System.Windows.Forms;??//DataGridView控件類的命名空間
//數(shù)據(jù)庫查詢
//執(zhí)行指定的SQL命令語句(insert,delete,update等),并返回命令所影響的行數(shù)
public?static?int?executeCommand(string?sqlStr)
{
????SqlConnection?sqlConnection1?=?new?SqlConnection("server=dell-PC;database=11071312HotelSys;uid=sa;pwd=xiaoyi9421");//創(chuàng)建數(shù)據(jù)庫連接(字符串中是我個人的數(shù)據(jù)庫信息)
????sqlConnection1.Open();??????//打開數(shù)據(jù)庫連接
????SqlCommand?sqlCommand1?=?new?SqlCommand(sqlStr,?sqlConnection1);??//執(zhí)行SQL命令
????int?Succnum?=?sqlCommand1.ExecuteNonQuery();
????return?Succnum;
}
//查詢(select)指定的數(shù)據(jù)記錄(多行多列),并填充到數(shù)據(jù)控件DataGridView中
public?static?void?queryDataToGrid(string?sqlStr,?DataGridView?dataGridView1)
{
????SqlConnection?sqlConnection1?=?new?SqlConnection("server=dell-PC;database=11071312HotelSys;uid=sa;pwd=xiaoyi9421");//創(chuàng)建數(shù)據(jù)庫連接
????SqlDataAdapter?sqlDataAdapter1?=?new?SqlDataAdapter(sqlStr,?sqlConnection1);//利用已創(chuàng)建好的sqlConnection1,創(chuàng)建數(shù)據(jù)適配器sqlDataAdapter1
????DataSet?dataSet1?=?new?DataSet();??//創(chuàng)建數(shù)據(jù)集對象
????sqlDataAdapter1.Fill(dataSet1);????//執(zhí)行查詢,查詢的結(jié)果存放在數(shù)據(jù)集里
????dataGridView1.DataSource?=?dataSet1.Tables[0];?//把數(shù)據(jù)集中的查詢結(jié)果綁定dataGridView1中
}
//查詢(select)指定的數(shù)據(jù)(單個數(shù)據(jù),假設(shè)為string類型),并返回
public?static?string?queryData(string?sqlStr)
{
????SqlConnection?sqlConnection1?=?new?SqlConnection("server=dell-PC;database=11071312HotelSys;uid=sa;pwd=xiaoyi9421");//創(chuàng)建數(shù)據(jù)庫連接
????SqlDataAdapter?sqlDataAdapter1?=?new?SqlDataAdapter(sqlStr,?sqlConnection1);//利用已創(chuàng)建好的sqlConnection1,創(chuàng)建數(shù)據(jù)適配器sqlDataAdapter1
????DataSet?dataSet1?=?new?DataSet();??//創(chuàng)建數(shù)據(jù)集對象
????sqlDataAdapter1.Fill(dataSet1);????//執(zhí)行查詢,查詢的結(jié)果存放在數(shù)據(jù)集里
????return?dataSet1.Tables[0].Rows[0]["列名"].ToString();?//把查詢結(jié)果的第一行指定列下的數(shù)據(jù)以string類型返回
}
//數(shù)據(jù)庫添加
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("添加成功",?"提示:");
????????}
//數(shù)據(jù)庫刪除
private?void?btn_delete_Click(object?sender,?EventArgs?e)
? ? ? ? {
????????????string?sql?=?"delete?from 學(xué)生表?where StuId='0008';
????????????int?i=help.changeSqlData(sql);
????????????if?(i?==?0)?MessageBox.Show("刪除失敗",?"提示:");
????????????else?MessageBox.Show("刪除成功",?"提示:");
????????}
//數(shù)據(jù)庫修改
private?void?btn_update_Click(object?sender,?EventArgs?e)
? ? ? ? {
????????????string?sql?=?"update 學(xué)生表?set StuAge="19" where StuId="0008";
????????????int?i?=?help.changeSqlData(sql);
????????????if?(i?==?0)?MessageBox.Show("修改失敗",?"提示:");
????????????else?MessageBox.Show("修改成功",?"提示:");
????????}

增加一行數(shù)據(jù)(課程表中增加一行數(shù)據(jù))

刪除一行數(shù)據(jù)(刪除學(xué)生表中的一行數(shù)據(jù)) 

修改一條數(shù)據(jù)(將學(xué)生表中的一條數(shù)據(jù)修改)

查詢某一條數(shù)據(jù)(查詢成績表中學(xué)號為0005的同學(xué)的成績)

 實(shí)驗(yàn)總結(jié):

本次實(shí)驗(yàn)通過使用C#連接數(shù)據(jù)庫MySQL,并且使用控件dataGridView控件顯示表中的數(shù)據(jù),實(shí)現(xiàn)基本的增刪改查等數(shù)據(jù)庫操作,在本次實(shí)驗(yàn)連接數(shù)據(jù)庫操作的過程中出現(xiàn)vs2022無法添加MySQL數(shù)據(jù)庫的問題,最后在網(wǎng)上找到解決方案,添加數(shù)據(jù)庫成功,在進(jìn)行數(shù)據(jù)的增刪改查的操作時,也出現(xiàn)了數(shù)據(jù)庫的報(bào)錯,無法執(zhí)行操作,導(dǎo)致無法呈現(xiàn)正確的結(jié)果,在經(jīng)過一番代碼的修改,調(diào)式后終于正常顯示結(jié)果。

總結(jié)

到此這篇關(guān)于VS2022連接數(shù)據(jù)庫MySQL并進(jìn)行基本的表的操作指南的文章就介紹到這了,更多相關(guān)VS2022連接MySQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql之EXPLAIN顯示using filesort介紹

    Mysql之EXPLAIN顯示using filesort介紹

    EXPLAIN 是mysql解釋select查詢的一個關(guān)鍵字,可以很方便的用于調(diào)試
    2012-02-02
  • MySQL too many connections錯誤的原因及解決

    MySQL too many connections錯誤的原因及解決

    這篇文章主要介紹了MySQL too many connections錯誤的原因及解決,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-03-03
  • MySQL數(shù)據(jù)庫索引以及失效場景詳解

    MySQL數(shù)據(jù)庫索引以及失效場景詳解

    索引是一種數(shù)據(jù)結(jié)構(gòu),為了應(yīng)對不同的場景會有多種實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫索引以及失效場景的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • order?by?+?limit分頁時數(shù)據(jù)重復(fù)問題及解決方法

    order?by?+?limit分頁時數(shù)據(jù)重復(fù)問題及解決方法

    這篇文章主要介紹了order?by?+?limit分頁時數(shù)據(jù)重復(fù),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • MySQL復(fù)制表的三種方式(小結(jié))

    MySQL復(fù)制表的三種方式(小結(jié))

    這篇文章主要介紹了MySQL復(fù)制表的三種方式(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • MYSQL刪除重復(fù)數(shù)據(jù)的簡單方法

    MYSQL刪除重復(fù)數(shù)據(jù)的簡單方法

    業(yè)務(wù)中遇到要從表里刪除重復(fù)數(shù)據(jù)的需求,使用了下面的方法,執(zhí)行成功,大家可以參考使用
    2013-11-11
  • Mysql數(shù)據(jù)庫開啟遠(yuǎn)程連接流程

    Mysql數(shù)據(jù)庫開啟遠(yuǎn)程連接流程

    文章講述了如何在本地MySQL數(shù)據(jù)庫上開啟遠(yuǎn)程訪問,并詳細(xì)步驟包括配置防火墻、設(shè)置MySQL用戶權(quán)限、使用Navicat進(jìn)行遠(yuǎn)程連接等
    2025-02-02
  • MySQL刪除有外鍵約束的表數(shù)據(jù)方法介紹

    MySQL刪除有外鍵約束的表數(shù)據(jù)方法介紹

    這篇文章主要介紹了MySQL刪除有外鍵約束的表數(shù)據(jù)方法介紹,還是非常不錯的,這里給大家分享下,需要的朋友可以參考。
    2017-10-10
  • 淺談mysql一張表到底能存多少數(shù)據(jù)

    淺談mysql一張表到底能存多少數(shù)據(jù)

    這篇文章主要介紹了淺談mysql一張表到底能存多少數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Mysql數(shù)據(jù)類型與CRUD操作詳細(xì)講解

    Mysql數(shù)據(jù)類型與CRUD操作詳細(xì)講解

    這篇文章主要介紹了Mysql數(shù)據(jù)類型與CRUD操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-10-10

最新評論

卢龙县| 吕梁市| 炉霍县| 吕梁市| 平山县| 固镇县| 大同县| 临西县| 宜州市| 宁海县| 鲁甸县| 乌拉特后旗| 临泽县| 梁河县| 兰溪市| 六盘水市| 柘城县| SHOW| 左权县| 徐汇区| 新邵县| 浪卡子县| 霍林郭勒市| 桓仁| 湖口县| 京山县| 吉木乃县| 汤原县| 即墨市| 台山市| 丹棱县| 广州市| 衡阳市| 磐安县| 台州市| 临桂县| 莲花县| 曲沃县| 张家港市| 顺义区| 连州市|