日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
C語言調(diào)用SQL數(shù)據(jù)庫(kù)查詢成績(jī),一步到位!(c語言調(diào)用sql數(shù)據(jù)庫(kù)查詢成績(jī))

隨著信息化和數(shù)字化的不斷發(fā)展和更新,數(shù)據(jù)庫(kù)這一重要的信息管理工具也逐漸普及和成為各個(gè)行業(yè)中不可缺少的存在。然而很多初學(xué)者對(duì)于如何在C語言中調(diào)用SQL數(shù)據(jù)庫(kù)查詢信息還比較陌生,本文將給出一種簡(jiǎn)單易行的方法,希望對(duì)C語言程序設(shè)計(jì)的初學(xué)者有所幫助。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供桓臺(tái)網(wǎng)站建設(shè)、桓臺(tái)做網(wǎng)站、桓臺(tái)網(wǎng)站設(shè)計(jì)、桓臺(tái)網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、桓臺(tái)企業(yè)網(wǎng)站模板建站服務(wù),十多年桓臺(tái)做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

一. 數(shù)據(jù)庫(kù)的準(zhǔn)備

1. 建立一個(gè)名為”student” 的數(shù)據(jù)庫(kù)

在MySQL中打開一個(gè)命令行窗口,輸入以下代碼:

“`

CREATE DATABASE student;

“`

2. 建立一個(gè)名為”score”的表格

輸入以下代碼:

“`

USE student;

CREATE TABLE score(

name CHAR(20),

subject CHAR(10),

score INT

);

“`

3. 插入一些學(xué)生的成績(jī)數(shù)據(jù)

在表”score”中,插入學(xué)生的成績(jī)數(shù)據(jù),例如:

“`

INSERT INTO score VALUES(“張三”, “語文”, 85);

INSERT INTO score VALUES(“張三”, “數(shù)學(xué)”, 90);

INSERT INTO score VALUES(“李四”, “語文”, 78);

INSERT INTO score VALUES(“李四”, “數(shù)學(xué)”, 60);

“`

至此,我們的數(shù)據(jù)庫(kù)環(huán)境已經(jīng)準(zhǔn)備完畢。

二. C語言中調(diào)用SQL數(shù)據(jù)庫(kù)查詢成績(jī)

接下來我們進(jìn)入本文的主題——學(xué)習(xí)如何在C語言中調(diào)用SQL數(shù)據(jù)庫(kù)查詢成績(jī)。

1. 函數(shù)頭文件和預(yù)編譯指令

在程序的開頭需要添加以下兩個(gè)頭文件:

“`

#include

#include

“`

此外,在程序開頭也需要添加一個(gè)預(yù)編譯指令:

“`

#define HOST “l(fā)ocalhost”

#define USER “root”

#define PASSWORD “password”

#define DATABASE “student”

“`

其中HOST為數(shù)據(jù)庫(kù)所在的IP地址,USER為訪問數(shù)據(jù)庫(kù)的用戶名,PASSWORD為登錄數(shù)據(jù)庫(kù)時(shí)需要用到的密碼,DATABASE是我們剛剛創(chuàng)建的數(shù)據(jù)庫(kù)名。

2. mn函數(shù)體

在mn函數(shù)中,首先需要聲明和初始化一些變量和結(jié)構(gòu)體,用來連接和查詢數(shù)據(jù)庫(kù)。代碼如下:

“`

int mn(int argc, char *argv[]) {

MYSQL mysql;

MYSQL_RES *res = NULL;

MYSQL_ROW row = NULL;

int t, r;

t = r = 0;

mysql_init(&mysql);

mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, “utf8”);

mysql_options(&mysql, MYSQL_INIT_COMMAND, “SET NAMES utf8”);

mysql_options(&mysql, MYSQL_OPT_RECONNECT, “true”);

mysql_options(&mysql, MYSQL_OPT_COMPRESS, “true”);

mysql_real_connect(&mysql, HOST, USER, PASSWORD, DATABASE, 0, NULL, 0);

char query[1000];

}

“`

其中,MYSQL是MySQL數(shù)據(jù)庫(kù)的一個(gè)C語言封裝結(jié)構(gòu)體,MYSQL_RES是表示查詢結(jié)果的結(jié)構(gòu)體,MYSQL_ROW是指向查詢結(jié)果中的某一行數(shù)據(jù)的指針。

`mysql_init`用于初始化MYSQL結(jié)構(gòu)體;`mysql_options`設(shè)置一些數(shù)據(jù)庫(kù)連接參數(shù);`mysql_real_connect`用于連接數(shù)據(jù)庫(kù)。query[1000]用于存儲(chǔ)查詢語句,最長(zhǎng)可以達(dá)到1000個(gè)字符。如果查詢語句超過了1000個(gè)字符,則會(huì)出現(xiàn)一些問題。

3. 查詢語句和數(shù)據(jù)查詢

現(xiàn)在,我們就可以開始寫查詢語句,通過代碼:

“`

sprintf(query, “SELECT name, subject, score FROM score WHERE name=’%s'”, “張三”);

mysql_query(&mysql, query);

res = mysql_store_result(&mysql);

while((row = mysql_fetch_row(res))) {

printf(“name:%s,subject:%s,score:%s\n”,row[0],row[1],row[2]);

}

mysql_free_result(res);

“`

我們可以在MySQL中查詢學(xué)生“張三”的成績(jī),查詢結(jié)果會(huì)以列表的形式輸出,如下所示:

“`

name:張三,subject:語文,score:85

name:張三,subject:數(shù)學(xué),score:90

“`

因此,我們可以根據(jù)學(xué)生姓名進(jìn)行查詢,獲得該學(xué)生所有的成績(jī)記錄。

4. 關(guān)閉數(shù)據(jù)庫(kù)連接

程序執(zhí)行完畢后,需要關(guān)閉數(shù)據(jù)庫(kù)的連接,防止出現(xiàn)錯(cuò)誤,代碼如下:

“`

mysql_close(&mysql);

“`

到此為止,我們就成功地在C語言中調(diào)用了SQL數(shù)據(jù)庫(kù),并獲得了查詢結(jié)果。

相關(guān)問題拓展閱讀:

  • C語言環(huán)境下如何使用動(dòng)態(tài)SQL?

C語言環(huán)境下如何使用動(dòng)態(tài)SQL?

你真是牛人呀。數(shù)據(jù)庫(kù)類型那么多,有oracle mysql DB2 SQL SQLsevera。你使用的那種。

相對(duì)于來說我使用oracle多。

給你一個(gè)pro*c的操作實(shí)例吧 

/ 定義符號(hào)常數(shù)

#define USERNAME “SCOTT”

#define PASSWORD “x”

#include

// 說明SQLCA和ORACA

EXEC SQL INCLUDE SQLCA;

EXEC SQL INCLUDE ORACA;

// 啟用ORACLE通訊區(qū):ORACA=YES,使它能被使用

EXEC ORACLE OPTION (ORACA=YES);

// 說明SQL變量

EXEC SQL BEGIN DECLARE SECTION;

char* username=USERNAME;

char* password=PASSWORD;

VARCHAR sqlstmt;

int emp_number;

VARCHAR emp_name;

VARCHAR job,job1,job2;

float salary;

EXEC SQL END DECLARE SECTION;

main()

{

EXEC SQL WHENEVER SQLERROR GOTO sqlerror;

// 發(fā)生錯(cuò)誤時(shí),保存SQL語句至ORACA

oraca.orastxtf=ORASTFERR;

// 登錄到ORACLE

EXEC SQL CONNECT :username IDENTIFIED BY :password;

printf(“/nConnect to ORACLE./n”);

// 構(gòu)造動(dòng)態(tài)SQL語句

sqlstmt.len=sprintf(sqlstmt.arr,”INSERT INTO EMP(EMPNO,ENAME,JOB,SAL)VALUES(:V1,:V2,:V3,:V4)”);

// 顯示SQL語句

puts(sqlstmt.arr);

// 用PREPARE語句旁滲和分析當(dāng)前的動(dòng)態(tài)INSERT語運(yùn)盯句,語句名是S

EXEC SQL PREPARE S FROM :sqlstmt;

// 循環(huán)插表

for(;;)

{

printf(“/nEnter employee number:”);

scanf(“%d”,&emp_number);

if(emp_number==0)break;

printf(“/nEnter employee name:”);

scanf(“%s”,&emp_name.arr);

emp_name.len=strlen(emp_name.arr);

printf(“/nEnter employee job:”);

scanf(“%s”,&job.arr);

job.len=strlen(job.arr);

salary = 0; // With VC6, Missing this line will cause C Run-Time Error R6002.

printf(“/nEnter salary:”);

scanf(“%f”,&salary);

EXEC SQL EXECUTE S USING :emp_number,:emp_name,:job,:salary;

}

// 提交事務(wù)喊敗,退出ORACLE

EXEC SQL COMMIT RELEASE;

printf(“/nHave a good day!/n”);

exit(0);

sqlerror:

// 打印錯(cuò)誤信息

printf(“/n%.*s/n”,sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);

// 打印出錯(cuò)SQL語句

printf(“/n/”%.*s…/”/n”,oraca.orastxt.orastxtl,oraca.orastxt.orastxtc);

// 打印出錯(cuò)SQL語句所在行號(hào)及所在文件名

printf(“on line %d of %.*s/n/n”,oraca.oraslnr,

oraca.orasfnm.orasfnml,oraca.orasfnm.orasfnmc);

// 回滾事務(wù),退出ORACLE

EXEC SQL WHENEVER SQLERROR CONTINUE;

EXEC SQL ROLLBACK RELEASE;

exit(1);

}

sql語句進(jìn)行字符串拼裝,敏老把動(dòng)態(tài)的位置用變量者桐拼進(jìn)去

有字符串拼接函數(shù)的,莫虛,當(dāng)然更好自己寫一個(gè),可以充分提高首拿坦效率

關(guān)于c語言調(diào)用sql數(shù)據(jù)庫(kù) 查詢成績(jī)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動(dòng)、聯(lián)通機(jī)房等。


本文名稱:C語言調(diào)用SQL數(shù)據(jù)庫(kù)查詢成績(jī),一步到位!(c語言調(diào)用sql數(shù)據(jù)庫(kù)查詢成績(jī))
分享鏈接:http://www.5511xx.com/article/dhsphhj.html