當前位置:首頁 » 數據倉庫 » c查詢資料庫並返回表
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c查詢資料庫並返回表

發布時間: 2022-05-28 18:48:50

Ⅰ c#從sql資料庫表中查詢有幾條記錄並返回值,幫我看下哪裡錯了

select count(*) from small where state='" + state + "'"
這條語句執行出來就只有一條記錄,就是你資料庫中數據的條目,所以執行出來永遠是1

Ⅱ linux下用c語言從mySQL中查詢並返回查詢值

http://tieba..com/f?kz=143730016
詳細描述了c是如何連接mysql並進行操作的,建議你閱讀後自己寫代碼

Ⅲ C#access資料庫查詢返回值

int c=odc.ExecuteNonQuery();//這里出錯了(這里適用的sql語句為 Update,Insert;Select是不適用的)
正確為:
int c=odc.ExecuteScalar();//

Ⅳ C#資料庫查詢返回值

你的資料庫中數據表設計的時候,Cusid是自增的主鍵int 型的話,那麼就在成功之後再反過來給它一個查詢:
select Max(Cusid) from 表名
這樣就可以得到你要的剛注冊的實例了~

希望可以幫助你~~

Ⅳ 用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說明出來。

Ⅵ 求助大牛!C++編程,如何查詢資料庫中多條記錄的多個欄位值,並且返回到一個數據塊中...急急急!

額。。寫個個簡單的樣列,用的是ODBC,比較直接。使用ADO的話雖然代碼少,但是看起來不是很好理解。你可以自己去網路學學~
用到的函數都比較容易理解,我就沒多加說明了,如果有不理解的復制函數名網路一下,會有詳細的說明的。大概的流程就是這樣了~

//包含頭文件
#include "windows.h"
#include "sqlext.h"
#pragma comment(lib,"odbc32.lib")

int main(int argc, char* argv[]){
//1.連接數據源(前提是你已經配置好了數據源,我用的sqlserver資料庫,怎麼配數據源網路一下~很簡單的)
//分配環境句柄, 保存一些驅動程序的信息
SQLHENV henv;//環境句柄
SQLRETURN sqlRet;
sqlRet = SQLAllocEnv(&henv);
if (sqlRet != SQL_SUCCESS && sqlRet != SQL_SUCCESS_WITH_INFO)
{
printf("分配環境句柄失敗!\n");
return -1;
}
//分配連接句柄
SQLHDBC hdbc;//連接句柄
sqlRet = SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
if (sqlRet != SQL_SUCCESS && sqlRet != SQL_SUCCESS_WITH_INFO)
{
printf("分配連接句柄失敗!\n");
return -1;
}
//連接數據源(test是資料庫名字,sa 和sa 是用戶們和密碼,你替換即可)
sqlRet = SQLConnect(hdbc,(SQLCHAR*)"test",strlen("test"),(SQLCHAR*)"sa",2,(SQLCHAR*)"sa",2);
if (sqlRet != SQL_SUCCESS && sqlRet != SQL_SUCCESS_WITH_INFO)
{
printf("連接數據源失敗!\n");
return -1;
}

//2.執行SQL語句
//准備語句句柄
SQLHSTMT hstmt;
sqlRet = SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);
if (sqlRet != SQL_SUCCESS && sqlRet != SQL_SUCCESS_WITH_INFO)
{
printf("連接語句句柄失敗!\n");
return -1;
}
//設置游標類型(參看:http://blog.csdn.net/bichenggui/article/details/5601381)
sqlRet = SQLSetStmtOption(hstmt,SQL_ATTR_CURSOR_TYPE,SQL_CURSOR_KEYSET_DRIVEN);
if (sqlRet != SQL_SUCCESS && sqlRet != SQL_SUCCESS_WITH_INFO)
{
printf("設置游標類型失敗!\n");
return -1;
}
//執行SQL語句
//直接執行(你替換成你自己的sqlserver語句即可)
sqlRet = SQLExecDirect(hstmt,(SQLCHAR*)"insert into student values('lsk',21)",SQL_NTS);
if (sqlRet != SQL_SUCCESS && sqlRet != SQL_SUCCESS_WITH_INFO)
{
printf("執行SQL語句失敗!\n");
return -1;
}

//獲取結果集
SQLCHAR value[20]={0};
SQLINTEGER len = 0;

//移動游標(不移動前游標指向結果集第一列的前面)
SQLFetch(hstmt);
//取值(取的是結果集的第一列的值),第二個參數表示取第幾列
SQLGetData(hstmt,1,SQL_C_CHAR,value,20,&len);
printf("結果為:%s\n",value);
//假如結果集有多行則再次移動游標即可
SQLFetch(hstmt);
//然後再次取值
SQLGetData(hstmt,1,SQL_C_CHAR,value,20,&len);

//關閉句柄,釋放資源
SQLFreeHandle(SQL_HANDLE_STMT, hstmt); //釋放語句句柄
SQLDisconnect(hdbc); //斷開連接
SQLFreeHandle(SQL_HANDLE_DBC, hdbc); //釋放連接句柄
SQLFreeHandle(SQL_HANDLE_ENV, henv); //釋放環境句柄
return 0;
}

Ⅶ VC查詢MySQL資料庫獲取返回結果時出問題

這樣貌似內存地址錯誤or溢出。可以排除法下斷or注釋部分代碼一點點縮小出錯代碼范圍。另一方面可以在Debug下出現出錯點重試斷下後看i值看看是哪一行讀取出現問題。是不是和數據異常有關系比方說讀取列沒有數據的情況。

Ⅷ C#中如何把Oracle資料庫查詢的結果集返回

1、首先通過DLL方式進行連接資料庫, 也是一個比較通用的方式,項目引入後,即可使用,非常方便,使用之前如有把封裝的DLL文件引入自己的項目中,項目里就可以直接調用。

Ⅸ 資料庫查詢結果兩張表只返回一張數據表

存儲過程沒有返回值,函數才有返回值。你把你的代碼貼出來看下吧 .
我還是不太理解你的需求,你想只返回第二個select語句查詢的結果。存存儲過程是返回不了值的啊~~ 存存儲過程執行一系列的操作,比如把一個表的數據轉移 到另一個表之類的,不會有返回值的。。。
你想得到第二個查詢語句的數據,是在存儲過程內部使用?那樣的話 參考寫法:
FOR I IN (SELECT A,B,C FROM XXX) LOOP
K:= I.A;
L:=I.B;
M:= I.C;
END LOOP;

Ⅹ 。net如何連接資料庫,查詢一個表,在返回一個dataset

首先確定連接的資料庫類型,舉例:SqlServer2005
1.引入命名控制項using System.Data.SqlClient;
2.創建連接對象SqlConnection con=new SqlConnection("server=伺服器名;database=資料庫名;uid=sa;pwd=123");密碼不是必須的,如果你沒有密碼pwd可以省略
3.創建SqlDataAdapter sda=new SqlDataAdapter("要執行的SQL語句",con);
例如:select * from tableOne
4.DataSet ds=new DataSet();
5.sda.Fill(ds,"表名");//查詢資料庫,將數據結果填充到DataSet中的一個DataTable中。