當前位置:首頁 » 數據倉庫 » 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);
}