当前位置:首页 » 数据仓库 » 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中。