当前位置:首页 » 操作系统 » c数据库操作

c数据库操作

发布时间: 2023-01-16 21:13:20

A. c语言怎么把链表数据写进mysql

方法如下:
1.头文件:
#include
#include
#include//这个是必需要包含的,下面对mysql的所有操作函数,都出自这里
2.定义一个MYSQL变量:
MYSQLmysql;
这里MYSQL是一个用于连接MySql数据库的变量。
在后面对mysql数据库的操作中,我们就用这个MYSQL变量作为句柄的。
3.定义数据库参数:
charhost[32]=”localhost”;
charuser[32]=”username”;
charpasswd[32]=”pwd”;
chardbname[32]=”testdb”;
4.数据库操作
1).初始化数据库:
mysql_init(&mysql);
2).连接数据库:
mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0);
我们在操作时,可以对以上的函数进行if测试,如果初始化或者连接出错,作出相应提示,以便调试。
5.对数据库的操作:
Mysql_query(&mysql,“select*fromtestdbwherecondition”);
我们在实际操作中,为了更方便的使用程序中的某些变量,我们将会用到一个函数:
intsprintf(char*str,constchar*format,?);
这个函数用来格式化我们的字符串,然后将变量按照给你的格式,赋给第一个参数。
我们使用这个方法方法可以很方便的使用我们的变量来对数据库进行操作。例如我们将要进行数据库的查询操作,我们就可以这样使用:
sprintf(sql,”select*fromtestdbwhereusername=‘%s’”,u_name);
然后使用mysql_query(&mysql,sql)进行查询。
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(,关系数据库管理系统)应用软件之一。
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。

B. C语言数据库是什么

数据库是用来存入数据的仓库。用户可以对文件中的数据进行新增、查询、更新、删除等操作。但是C语言和数据库是两个东西,他们之间的关系就是C语言可以用来开发数据库管理软件,也可以通过C语言借助于SQL语句来操作数据库。

C语言普适性最强的一种计算机程序编辑语言,它不仅可以发挥出高级编程语言的功用,还具有汇编语言的优点,因此相对于其它编程语言,它具有自己独特的特点。具体体现在以下三个方面:

其一,广泛性。C 语言的运算范围的大小直接决定了其优劣性。C 语言中包含了34种运算符,因此运算范围要超出许多其它语言,此外其运算结果的表达形式也十分丰富。此外,C 语言包含了字符型、指针型等多种数据结构形式,因此,更为庞大的数据结构运算它也可以应付。

其二,简洁性。9 类控制语句和32个KEYWORDS是C语言所具有的基础特性,使得其在计算机应用程序编写中具有广泛的适用性,不仅可以适用广大编程人员的操作,提高其工作效率,同 时还能够支持高级编程,避免了语言切换的繁琐。


(2)c数据库操作扩展阅读

数据库架构

1、内层:最接近实际存储体,亦即有关数据的实际存储方式。

2、外层:最接近用户,即有关个别用户观看数据的方式。

3、概念层:介于两者之间的间接层。

C. C/C++ 怎么操作ACCESS数据库啊

C++利用ado编程,首先要引用一个库文件
#import
"c:\program
files\common
files\system\ado\msado15.dll"no_namespaces
rename("EOF"
adoEOF")
然后用AfxOleInit()初始化组件
定义一个_ConnectionPtr
指针,然后利用这个指针打开数据库字符串,
你去网个看一下,很多教程的
http://hi..com/lninglove/blog/item/3f6cec22959e4ca34723e833.html

D. 在linux下使用C语言操作数据库有哪些方法

两种方法,一是自己设计表格式,并存储在相应文件中,然后读取;
第二种,利用已有的第三方哈希表数据库,比如qdbm,具体的编程可以参考相应数据库的帮助文档

E. 纯C++数据库操作

下文程序中介绍了在C/C++中使用API以及ADO指针来连接这3种数据库的方式.因为ADO是最通用的数据库连接方式,兼容性比较好,特别推荐.

特别说明:
1.用微软的东西连接MySQL需要到www.mysql.com下载myODBC方可使用,毕竟是SUN的东西,需要myODBC转接.经测试,函数GetRecordCount()在操作MySQL时不可用,替代方式可以用一个遍历计数的算法,但是直接用封装好的函数实现暂且不行.
2.MS Office Access功能很强大,对于中小型项目开发绰绰有余,大型程序才需要用到MS SQL Server和Oracal.并且在windows环境开发下非常方便,有许多封装好的数据库操作函数.
3.请注意指定自己机器上msado15.dll动态联结库的位置,没有的话自己去搞一个去.毕竟ADO是定义在它上面的.
4.不明白函数请咨询MSDN.

#include <stdio.h>
#include <iostream>

using namespace std;

#import "C:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")

int Initialize();
void Uninitialize();

// 数据库连接指针
_ConnectionPtr sg_pDBConn;

// 记录集指针
_RecordsetPtr sg_pDBRset;

int main(void)
{
char str[1024]={0};
_variant_t field;
_variant_t nfield;
long cnt = 0;

Initialize();

try
{
sg_pDBConn.CreateInstance(__uuidof(Connection));
sg_pDBRset.CreateInstance(__uuidof(Recordset));
}
catch (char *e)
{
cout<<"------------------------------------错误---------------------------"<<endl;
cout<<e<<endl;
return -1;
}

// Connect Data Base
//-------------For SQL SERVER
//DBServer = "Driver=SQL Server; Server=" + SQL_SERVER_IPADDR + ";
// Database=" + DATABASE_NAME + "; UID=" + SQL_SERVER_USERNAME + "; PWD=" + SQL_SERVER_PASSWORD

//-------------For MySQL SERVER--------------------------------------
// localhost or 192.168.1.166
strcat(str, "Data Source=mysql odbc 3.51driver; Server=localhost; ");
strcat(str, "Database=1; ID=root; Password=111111");

//-------------For ACCESS SERVER
//strcpy(str, "Provider = Microsoft.Jet.OLEDB.4.0; Data Source= ");
//strcat(str, "F:\\Program\\MySQL\\TestMySQL\\1.mdb");

try
{
sg_pDBConn->Open(str, "", "", adModeUnknown);
}
catch (char *e)
{
cout<<"------------------------------------连接失败---------------------------"<<endl;
cout<<e<<endl;
return -1;
}

// Get Data
strcpy(str, "select * from hello1");

try
{
sg_pDBRset->Open(str,
_variant_t((IDispatch *)sg_pDBConn,true),
adOpenStatic,
adLockOptimistic,
adCmdText);
}
catch (char *e)
{
cout<<"------------------------------------读数据失败---------------------------"<<endl;
cout<<e<<endl;
return -1;
}

sg_pDBRset->MoveFirst();

while(!sg_pDBRset->adoEOF)
{
nfield = "sno";
field = sg_pDBRset->GetCollect(nfield);
cout<<(char *)_bstr_t(field)<<" ";
nfield = "age";
field = sg_pDBRset->GetCollect(nfield);
cout<<atoi((char *)_bstr_t(field))<<endl;

sg_pDBRset->MoveNext();
}

Uninitialize();

return 0;
}

int Initialize()
{
if(S_OK != CoInitialize(NULL))
{
return -1;
}else{
return 0;
}
}

void Uninitialize()
{
CoUninitialize();
}

F. C#的数据库操作

下面的介绍和参考资料希望能多少帮助你点

SQL SERVER 和ACCESS/excel的数据导入导出
常规的数据导入导出:
使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤:
1)在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation
2)Services(数据转换服务),然后选择 czdImport Data(导入数据)。
3)在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。
4)在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider for SQL Server,选择数据库服务器,然后单击必要的验证方式。
5)在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。
6)在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。下一步,完成。

Transact-SQL语句进行导入导出:
1.在SQL SERVER里查询access数据:

Select * FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',''Data Source="c:DB.mdb";User ID=Admin;Password='')...表名

2.将access导入SQL server
在SQL SERVER 里运行:
Select * INTO newtable FROM OPENDATASOURCE (''Microsoft.Jet.OLEDB.4.0'',''Data Source="c:DB.mdb";User ID=Admin;Password='' )...表名

3.将SQL SERVER表里的数据插入到Access表中
在SQL SERVER 里运行:
insert into OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',''Data Source=" c:DB.mdb";User ID=Admin;Password='')...表名 (列名1,列名2) select 列名1,列名2 from sql表

实例:
insert into OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',''C:db.mdb'';''admin'';'''', Test) select id,name from Test

Insert INTO OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', ''c:trade.mdb''; ''admin''; '''', 表名) Select * FROM sqltablename

二、SQL SERVER 和Excel的数据导入导出

1、在SQL SERVER里查询Excel数据:

Select * FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',''Data Source="c:book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0'')...[Sheet1$]

下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
Select * FROM OpenDataSource ( ''Microsoft.Jet.OLEDB.4.0'',''Data Source="c:Financeaccount.xls";User ID=Admin;Password=;Extended properties=Excel 5.0'')...xactions

2、将Excel的数据导入SQL server :
Select * into newtable FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',''Data Source="c:book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0'')...[Sheet1$]

实例:
Select * into newtable FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',''Data Source="c:Financeaccount.xls";User ID=Admin;Password=;Extended properties=Excel 5.0'')...xactions

3、将SQL SERVER中查询到的数据导成一个Excel文件
T-SQL代码:
EXEC master..xp_cmdshell ''bcp 库名.dbo.表名out c:Temp.xls -c -q -S"servername" -U"sa" -P""''
参数:S 是SQL服务器名;U是用户;P是密码
说明:还可以导出文本文件等多种格式

实例:EXEC master..xp_cmdshell ''bcp saletesttmp.dbo.CusAccount out c:temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"''

EXEC master..xp_cmdshell ''bcp "Select au_fname, au_lname FROM pubs..authors orDER BY au_lname" queryout C: authors.xls -c -Sservername -Usa -Ppassword''

在VB6中应用ADO导出Excel文件代码:
Dim cn As New ADODB.Connection
cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
cn.execute "master..xp_cmdshell ''bcp "Select col1, col2 FROM 库名.dbo.表名" queryout E:DT.xls -c -Sservername -Usa -Ppassword''"

4、在SQL SERVER里往Excel插入数据:

insert into OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',''Data Source="c:Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0'')...table1 (A1,A2,A3) values (1,2,3)

T-SQL代码:
Insert INTO
OPENDATASOURCE(''Microsoft.JET.OLEDB.4.0'',''Extended Properties=Excel 8.0;Data source=C:traininginventur.xls'')...[Filiale1$] (bestand, prokt) VALUES (20, ''Test'')

G. 用C语言如何对MySQL数据库进行操作

里的大部分代码参考了MySQL发行包里面的.c源文件,大家也可以去里面找找相关的代码,下面这段代码实现了连接到本地MySQL服务器上9tmd_bbs_utf8数据库,从数据表tbb_user中根据输入的userid取得该用户的用户名并打印输出到终端。
if defined(_WIN32) || defined(_WIN64)为了支持windows平台上的编译
#include <windows.h> #endif #include <stdio.h> #include <stdlib.h> #include "mysql.h"

我的机器上该文件在/usr/local/include/mysql下
定义MySQL数据库操作的宏,也可以不定义留着后面直接写进代码
define SELECT_QUERY "select username from tbb_user where userid = %d" int main(int argc, char **argv)char **argv 相当于 char *argv[] {

MYSQL mysql,*sock;定义数据库连接的句柄,它被用于几乎所有的MySQL函数
MYSQL_RES *res;查询结果集,结构类型
MYSQL_FIELD *fd ;包含字段信息的结构
MYSQL_ROW row ;存放一行查询结果的字符串数组
char qbuf[160];存放查询sql语句字符串
if (argc != 2) { //检查输入参数 fprintf(stderr,"usage : mysql_select <userid>\n\n"); exit(1); } mysql_init(&mysql); if (!(sock = mysql_real_connect(&mysql,"localhost","dbuser","dbpwd","9tmd_bbs_utf8",0,NULL,0))) { fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql)); perror(""); exit(1); } sprintf(qbuf,SELECT_QUERY,atoi(argv[1])); if(mysql_query(sock,qbuf)) { fprintf(stderr,"Query failed (%s)\n",mysql_error(sock)); exit(1); } if (!(res=mysql_store_result(sock))) { fprintf(stderr,"Couldn't get result from %s\n", mysql_error(sock)); exit(1); } printf("number of fields returned: %d\n",mysql_num_fields(res)); while (row = mysql_fetch_row(res)) { printf("Ther userid #%d 's username is: %s\n", atoi(argv[1]),(((row[0]==NULL)&&(!strlen(row[0]))) ? "NULL" : row[0])) ; puts( "query ok !\n" ) ; } mysql_free_result(res); mysql_close(sock); exit(0); return 0;

为了兼容大部分的编译器加入此行
}
编译的时候,使用下面的命令
gcc -o mysql_select ./mysql_select.c -I/usr/local/include/mysql -L/usr/local/lib/mysql -lmysqlclient (-lz) (-lm) 后面两个选项可选,根据您的环境情况运行的时候,执行下面的命令
./mysql_select 1
将返回如下结果:
number of fields returned: 1 Ther userid #1 's username is: Michael query ok !

上面的代码我想大部分都能看明白,不明白的可以参考一下MySQL提供的有关C语言API部分文档,各个函数都有详细说明,有时间我整理一份常用的API说明出来。

H. c#数据库操作代码怎么弄

一、单项选择题(本大题共20小题,每小题2分,共40分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.E-R模型属于数据库的()A.概念模型
B.逻辑模型C.内部模型 D.外部模型2.实体完整性规则是指关系的()A.主键不能取重复值 B.主键的任一属性不能取空值C.外键不能取重复值 D.外键的任一属性不能取空值3.有关系R(A,B,C)和S(D,E,A)如图所示,的元组个数是()
R SABC DEAa12fd2ka1a24hd4ha2a37w 题3图A.1 B.2
C.5 D.6
4.若有关系模式:R(课程编号,课程名称,学号,姓名,分数),且一名学生可选多门课程,一门课程有多名学生选,则R属于()A.1NF B.2NF
C.3NF D.4NF
5.有学生(学号,姓名,性别)和成绩(学号,课程名称,分数)两个表,若在建立学生与成绩一对多联系时,选择的联系类型是:包括″学生″中的所有记录和″成绩″中联接字段相等的那些记录,则数据之间关联方式是()A.内部联接 B.全外部联接C.左外部联接 D.右外部联接6.在Access中,可用于存储图像数据的字段类型是()A.备注 B.超级链接C.文本 D.OLE对象7.在Access中,可用于保证数据库可靠性的手段是()A.设置密码 B.备份与还原C.使用用户级安全机制 D.以独占方式打开数据库8.有学生成绩表:SC(学号,课程号,分数),已知一个学生可以选多门课,一门课有多个学生选,则SC表的主键应该是()A.学号,课程号 B.学号C.课程号 D.分数9.在Access中,若设置了如下图所示的字段属性,则该字段值的显示格式是()A.所有字母都大写 B.所有字母都小写C.首字母大写 D.首字母小写10.有职工表:职工(职工编码,姓名,性别,出生年月),其中职工编码字段是文本型。如果要查询职工编码第3位是5的职工信息,则查询准则表达式是()A.职工编码=″!!5!!!″ B.职工编码LIKE″##5###″
C.职工编码=″**5***″ D.职工编码LIKE″??5*″
11.如下图所示,商品和销售两表之间的关系是()A.1∶1 B.1∶M
C.M∶N D.不确定12.有职工表:职工(职工编码,姓名,性别,出生年月),假设要查询职工的年龄,则该查询的计算字段″年龄″应定义为()A.年龄:Now()-Year(″出生年月″)
B.年龄:Year(Now())-Year([出生年月])
C.年龄:Year(Now())-Year(#出生年月#)
D.年龄:Year(Now())-Year(′出生年月′)
13.有学生表:S(学号,姓名,性别,专业),若要创建一个显示学生信息的窗体,则需指定S为该窗体的()A.数据入口 B.控件来源C.记录源 D.视图14.在创建查询时,通过查询准则来设定显示记录的条件,该操作实现了关系代数的()A.并运算 B.交运算C.选择运算 D.投影运算15.下列选项中,不属于报表视图的是()A.设计视图 B.数据表视图C.打印预览视图 D.版面预览视图16.在Access中创建学生表:S(学号,姓名,年龄),要实现在年龄字段中只允许输入18到26之间的数,则应设置年龄字段的()A.格式 B.掩码C.有效性规则 D.默认值17.有职工表:职工(职工号,姓名,工资,部门),如果要打印一个按部门统计工资总额的报表,在报表设计时应使用的函数是()A.=Avg
如果帮助到您,请记得采纳为满意答案哈,谢谢!祝您生活愉快!
vae.la

I. 如何在Linux下用C语言操作数据库sqlite3

下面我们看看怎么在C语言中向数据库插入数据。
好的,我们现编辑一段c代码,取名为 insert.c
// name: insert.c
// This prog is used to test C/C++ API for sqlite3 .It is very simple,ha !
// Author : zieckey All rights reserved.
// data : 2006/11/18
#include <stdio.h>
#include <stdlib.h>
#include "sqlite3.h"
#define _DEBUG_
int main( void )
{
sqlite3 *db=NULL;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open("zieckey.db", &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
if( rc )
{
fprintf(stderr, "Can't open database: %s
", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
else printf("You have opened a sqlite3 database named zieckey.db successfully!
Congratulations! Have fun ! ^-^
");
//创建一个表,如果该表存在,则不创建,并给出提示信息,存储在 zErrMsg 中
char *sql = " CREATE TABLE SensorData(
ID INTEGER PRIMARY KEY,
SensorID INTEGER,
SiteNum INTEGER,
Time VARCHAR(12),
SensorParameter REAL
);" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
#ifdef _DEBUG_
printf("%s
",zErrMsg);
#endif
//插入数据
sql = "INSERT INTO "SensorData" VALUES( NULL , 1 , 1 , '200605011206', 18.9 );" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
sql = "INSERT INTO "SensorData" VALUES( NULL , 1 , 1 , '200605011306', 16.4 );" ;
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
sqlite3_close(db); //关闭数据库
return 0;
}

好的,将上述代码写入一个文件,并将其命名为 insert.c 。
解释:
sqlite3_exec的函数原型说明如下:
int sqlite3_exec(
sqlite3*,
const char *sql,
sqlite_callback,
void *,
char **errms

g
);

编译:
[root@localhost temp]# gcc insert.c -lsqlite3 -L/usr/local/sqlite3/lib -I/usr/local/sqlite3/include
insert.c:28:21: warning: multi-line string literals are deprecated
[root@localhost temp]#
执行
[root@localhost temp]# ./a.out
./a.out: error while loading shared libraries: libsqlite3.so.0: cannot open shared object file: No such file or directory
[root@localhost temp]#
同样的情况,如上文处理方法:
[root@localhost temp]# export LD_LIBRARY_PATH=/usr/local/sqlite3/lib:$LD_LIBRARY_PATH
[root@localhost temp]# ./a.out
You have opened a sqlite3 database named zieckey.db successfully!
Congratulations! Have fun ! ^-^
(null)
(null)
(null)
[root@localhost temp]#
运行成功了,好了,现在我们来看看是否插入了数据
[root@localhost temp]# /usr/local/sqlite3/bin/sqlite3 zieckey.db
SQLite version 3.3.8
Enter ".help" for instructions
sqlite> select * from SensorData;
1|1|1|200605011206|18.9

2|1|1|200605011306|16.4
sqlite>

热点内容
新洁尔灭用于物体表面怎么配置 发布:2025-07-04 05:03:28 浏览:826
生活中的云服务器 发布:2025-07-04 05:01:55 浏览:741
三星g6700c原始密码是多少 发布:2025-07-04 04:49:41 浏览:724
网页编程代码 发布:2025-07-04 04:47:25 浏览:803
发消息时用到什么密码 发布:2025-07-04 04:41:47 浏览:978
3个密码箱能装多少钱 发布:2025-07-04 04:39:36 浏览:9
android数据库的操作 发布:2025-07-04 04:37:35 浏览:167
登录时设置密码保存在哪里 发布:2025-07-04 04:34:23 浏览:535
网站开发源码 发布:2025-07-04 04:30:45 浏览:343
魔戒护卫队是什么配置 发布:2025-07-04 04:25:33 浏览:568