当前位置:首页 » 数据仓库 » vc读取数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

vc读取数据库

发布时间: 2022-08-24 04:30:51

A. 用VC怎么把数据库中的记录一条一条读出

这个有什么问题?
你首先链接到数据库,然后打开数据表,读取一行数据,然后关闭结果集,等下一秒到来时,再次打开数据表,将数据表的游标移动到指定位置并记录下次要读取的位置,然后读数据,然后关闭。。。
不就这么简单吗?

B. vc++读取MYsql数据库表字段名乱码

你这不是乱码,而是二进制数据来罢啦,得进行转换.
为什么你要用blob呢?

blob是二进制数据,且你数据读取时,还要必须通过程序在外面写代码进行转换才能正常显示,多麻烦啊

就算你的内容很多,为什么你用blob却不用text?
blob与text的最大存储范围都是2的16次方个字节,一样大呢。

你什么内容那么大?我觉得varchar类型就足够了吧?varchar最大存储范围是65535个字节,这还不够?

C. VC ACCESS 逐条读取数据库

#include "stdafx.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

ADOConn::ADOConn()
{

}

ADOConn::~ADOConn()
{

}

// 初始化—连接数据库
void ADOConn::OnInitADOConn()
{
// 初始化OLE/COM库环境
::CoInitialize(NULL);

try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串,必须是BSTR型或者_bstr_t类型
_bstr_t strConnect = "Provider=MSDASQL.1;Persist Security Info=False;User ID=***;Data Source=***;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
AfxMessageBox(e.Description());
}
}

// 执行查询
_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
// 连接数据库,如果Connection对象为空,则重新连接数据库
if(m_pConnection==NULL)
OnInitADOConn();
// 创建记录集对象
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
AfxMessageBox(e.Description());
}
// 返回记录集
return m_pRecordset;
}

// 执行SQL语句,Insert Update _variant_t
BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
// _variant_t RecordsAffected;
try
{
// 是否已经连接数据库
if(m_pConnection == NULL)
OnInitADOConn();
// Connection对象的Execute方法:(_bstr_t CommandText,
// VARIANT * RecordsAffected, long Options )
// 其中CommandText是命令字串,通常是SQL命令。
// 参数RecordsAffected是操作完成后所影响的行数,
// 参数Options表示CommandText的类型:adCmdText-文本命令;adCmdTable-表名
// adCmdProc-存储过程;adCmdUnknown-未知
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
return false;
}
}

void ADOConn::ExitConnect()
{
// 关闭记录集和连接
if (m_pRecordset != NULL)
m_pRecordset->Close();
m_pConnection->Close();
// 释放环境
::CoUninitialize();
}

D. 在VC++中如何从数据库中读取数据和向数据库中写入数据

#include "stdafx.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

ADOConn::ADOConn()
{

}

ADOConn::~ADOConn()
{

}

// 初始化—连接数据库
void ADOConn::OnInitADOConn()
{
// 初始化OLE/COM库环境
::CoInitialize(NULL);

try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串,必须是BSTR型或者_bstr_t类型
_bstr_t strConnect = "Provider=MSDASQL.1;Persist Security Info=False;User ID=***;Data Source=***;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
AfxMessageBox(e.Description());
}
}

// 执行查询
_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
// 连接数据库,如果Connection对象为空,则重新连接数据库
if(m_pConnection==NULL)
OnInitADOConn();
// 创建记录集对象
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
AfxMessageBox(e.Description());
}
// 返回记录集
return m_pRecordset;
}

// 执行SQL语句,Insert Update _variant_t
BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
// _variant_t RecordsAffected;
try
{
// 是否已经连接数据库
if(m_pConnection == NULL)
OnInitADOConn();
// Connection对象的Execute方法:(_bstr_t CommandText,
// VARIANT * RecordsAffected, long Options )
// 其中CommandText是命令字串,通常是SQL命令。
// 参数RecordsAffected是操作完成后所影响的行数,
// 参数Options表示CommandText的类型:adCmdText-文本命令;adCmdTable-表名
// adCmdProc-存储过程;adCmdUnknown-未知
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
return false;
}
}

void ADOConn::ExitConnect()
{
// 关闭记录集和连接
if (m_pRecordset != NULL)
m_pRecordset->Close();
m_pConnection->Close();
// 释放环境
::CoUninitialize();
}

E. VC怎么操作数据库

你必须建立数据库的工作...
在“控制面板”,选择“管理工具”,打开数据源(ODBC),然后ODBC数据源管理器对话框弹出。系统
打开“DNS”选项卡上,单击“添加”,选择。附上海涂种植Access驱动程序(* mdb)中,单击“完成”,然后输入数据源的名称和说明。 (如果你是在其他人的代码,数据源的名称可能得到,所以你必须找到工作,他使用的数据源名称)。

(你下载的源代码的数据库的路径),然后选择数据库。

它只是设置。 。 。

F. vc++中 怎样读取Access数据库

VC下利用ADO连接Access数据库

#include <iostream.h>
#import "c:\\program files\\common files\\system\\ado\\msado15.dll" no_namespace rename ("EOF", "adoEOF")

int main(){

//使用ADO连接数据库...
//---------------------------------------------------------------------------------
_ConnectionPtr m_pConnection;

CoInitialize(NULL);
m_pConnection.CreateInstance(__uuidof(Connection));

// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
// 因为它有时会经常出现一些想不到的错误。
try
{
// 打开本地Access库db1.mdb
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb","","",adModeUnknown);

}
catch(_com_error e)
{
cout<<"数据库连接失败,确认数据库db1.mdb是否在当前路径下!"<<endl;
return FALSE;
}
//-------------------------------------------------------------------------------------
//建立数据集
//-------------------------------------------------------------------------------------
_RecordsetPtr m_pRecordset;
m_pRecordset.CreateInstance(__uuidof(Recordset));

// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
// 因为它有时会经常出现一些意想不到的错误。
try
{
m_pRecordset->Open("SELECT * FROM Home2",
m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
//AfxMessageBox(e->ErrorMessage());
cout<<e->ErrorMessage()<<endl;
}

//--------------------------------------------------------------------------------------
//读取数据
//--------------------------------------------------------------------------------------
_variant_t var;
char *strID,*strX,*strY;
float X,Y;
try
{
if(!m_pRecordset->BOF)
m_pRecordset->MoveFirst();
else
{
cout<<"表内数据为空"<<endl;
return 1;
}

// 读入库中各字段并加入列表框中
while(!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect("ID");
if(var.vt != VT_NULL)
strID= _com_util::ConvertBSTRToString((_bstr_t)var); //_variant_t转字符串
var = m_pRecordset->GetCollect("X");
if(var.vt != VT_NULL)
strX=_com_util::ConvertBSTRToString((_bstr_t)var);
var = m_pRecordset->GetCollect("Y");
if(var.vt != VT_NULL)
strY=_com_util::ConvertBSTRToString((_bstr_t)var);
cout<<strID<<"is"<<strX<<" "<<strY<<endl;

m_pRecordset->MoveNext();
}
}
catch(_com_error *e)
{
cout<<e->ErrorMessage()<<endl;
}

//--------------------------------------------------------------------------------------
//关闭数据集
m_pRecordset->Close();
m_pRecordset = NULL;
//--------------------------------------------------------------------------------------
//关闭数据库连接
//--------------------------------------------------------------------------------------
if(m_pConnection->State)
m_pConnection->Close();
m_pConnection= NULL;
return 0;
}

G. VC++窗体程序读取mdb格式的数据库,显示到textbox

private void DataBind()
{
DataTable dt = GetData(); //从数据库获取数据
txtName.Text=dt.Rows[0]["name"].ToString();
txtSex.Text=dt.Rows[0]["sex"].ToString();
}

在窗体加载时调用这个方法。

H. 请问如何用VC连接数据库并读取SQL Server数据库中的数据

在新建的工程中选择有数据库支持,点那个数据源按钮然后选择要你使用的数据库,将你做好的数据库全部选中,在编程时建立基类为CRECORDSET的类,选择你在该模块中要使用的数据库,然后在其后的编程中调用
显示数据库用列表控件
剩下的就看你的编程了

I. VC 读取SQLite数据库中的表的数据,该怎么解决

先用sqlite3_open打开数据库,得到一个struct
sqlite3的指针,例如
1
2
struct
sqlite3
*db
=
NULL;
sqlite3_open("数据库地址"
,&db);
然后
1
2
3
4
5
6
7
8
9
10
11
12
13
char
*szError
=
NULL,**dbResult;
int
row,col;
int
result
=
sqlite3_get_table(
db,"SELECT
name
FROM
sqlite_master
WHERE
type='table'
ORDER
BY
name",&dbResult,&row,&col,&szError
);
if(
result
==
SQLITE_OK
)
{
//dbResult就是查询结果,row和col分别是返回结果集的行数(包含表头)和列数
sqlite3_free_table(dbResult);
}
else
{
//szError是错误描述信息
sqlite3_free(szError);
}