#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()
注:对连接查询,可以先创建视图,再对视图进行查询。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)