用C语言怎么实现与数据库的连接

用C语言怎么实现与数据库的连接,第1张

#include<mysql/mysql.h>

#include<stdio.h>

intmain()

{

MYSQL*conn

MYSQL_RES*res

MYSQL_ROWrow

char*server="localhost"//本地连接

char*user="root"//

char*password="525215980"//mysql密码

char*database="student"//数据库

char*query="select*fromclass"//需要查询的语句

intt,r

conn=mysql_init(NULL)

if(!mysql_real_connect(conn,server,user,password,database,0,NULL,0))

{

printf("Errorconnectingtodatabase:%s\n",mysql_error(conn))

}else{

printf("Connected...\n")

}

t=mysql_query(conn,query)

if(t)

{

printf("Errormakingquery:%s\n",mysql_error(conn))

}else{

printf("Querymade...\n")

res=mysql_use_result(conn)

if(res)

{

while((row=mysql_fetch_row(res))!=NULL)

{

//printf("num=%d\n",mysql_num_fields(res))//列数

for(t=0t<mysql_num_fields(res)t++)

printf("%8s",row[t])

printf("\n")

}

}

mysql_free_result(res)

}

mysql_close(conn)

return0

}

扩展资料

C语言使用注意事项:

1、指针是c语言的灵魂,一定要灵活的使用它:

(1)、指针的声明,创建,赋值,销毁等

(2)、指针的类型转换,传参,回调等

2、递归调用也会经常用到:

(1)、递归遍历树结构

(2)、递归搜索

用VC中的MFC吧,很好上手

#include <afxdb.h>

/* 连接数据库 */

CDatabase db

BOOL bRtn

try {

bRtn = db.OpenEx("DSN=数据源名UID=sa", CDatabase::noOdbcDialog)

}catch (CDBException *pDBEx) {

pDBEx->ReportError()

}catch (CMemoryException *pMemEx) {

pMemEx->ReportError()

}

if (!bRtn)

printf("连接数据库失败!")

/* *** 作结束后,关闭数据库 */

db.Close()

添加记录 *** 作

#include <afxdb.h>

CDatabase db

BOOL bRtn

CString sql

/* 1、连接数据库,见(1) */

/* 2、生成INSERT语句,赋给sql,例如: */

sql = "insert into student_table (s_sID, s_sName, s_sAge) values (‘001’, ‘ZhangSan’, 20)"

/* 3、往数据库中添加纪录 */

try {

db.ExecuteSQL(sql)

} catch (CDBException *pDBEx) {

pDBEx->ReportError()

}

/* 4、关闭数据库 */

db.Close()

删除记录 *** 作

#include <afxdb.h>

CDatabase db

BOOL bRtn

CString sql

/* 1、连接数据库,见(1) */

/* 2、生成DELETE语句,赋给sql,例如: */

sql = "delete from student_table where s_SID =’001’"

/* 3、从数据库中删除纪录 */

try {

db.ExecuteSQL(sql)

} catch (CDBException *pDBEx) {

pDBEx->ReportError()

}

/* 4、关闭数据库 */

db.Close()

修改记录 *** 作

#include <afxdb.h>

CDatabase db

BOOL bRtn

CString sql

/* 1、连接数据库,见(1) */

/* 2、生成UPDATE语句,赋给sql,例如: */

sql = "update from student_table set s_sName=‘LiSi’,s_sAge=21 where s_SID =‘001’"

/* 3、更新数据库中的纪录 */

try {

db.ExecuteSQL(sql)

} catch (CDBException *pDBEx) {

pDBEx->ReportError()

}

/* 4、关闭数据库 */

db.Close()

查询、统计 *** 作

#include <myRecordset.h>

CDatabase db

BOOL bRtn

CString sql

/* 1、连接数据库,见(1) */

/* 2、生成查询/统计语句,赋给sql,例如: */

sql = "Select * From student_table where s_sAge=20"

/* 3、打开记录集,查询/统计 */

CMyRecordset rs(&db)

try {

bRtn = rs.Open(CRecordset::snapshot,sql)

} catch(CDBException *pDBEx) {

pDBEx->ReportError()

} catch(CMemoryException *pMemEx) {

pMemEx->ReportError()

}

if(!bRtn) {

AfxMessageBox("Query table failed!",MB_OK|MB_ICONERROR)

return

}

/* 4、逐条获取查询结果 */

for(rs.MoveFirst()!rs.IsEOF()rs.MoveNext()) {

// TODO: Add code here

}

/* 5、关闭记录集、数据库 */

rs.Close()

db.Close()

注:对连接查询,可以先创建视图,再对视图进行查询。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10822896.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存