當前位置:首頁 » 操作系統 » 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-03 16:28:46 瀏覽:72
電信無線路由器官方密碼是什麼 發布:2025-07-03 16:25:00 瀏覽:772
空間只能申請訪問 發布:2025-07-03 16:23:27 瀏覽:735
華碩天選2air配置如何選擇 發布:2025-07-03 16:10:09 瀏覽:571
asp搜索源碼 發布:2025-07-03 15:49:55 瀏覽:235
醫美大資料庫 發布:2025-07-03 15:47:07 瀏覽:357
c語言將二進制轉化為十進制 發布:2025-07-03 15:32:47 瀏覽:988
c語言幫助文檔 發布:2025-07-03 15:22:43 瀏覽:320
雙埠存儲器在情況下會發生讀寫沖突 發布:2025-07-03 15:12:54 瀏覽:271
快站資料庫 發布:2025-07-03 14:45:44 瀏覽:40