c連接server資料庫
❶ C/S系統,客戶端如何連接伺服器端的資料庫 C# sqlSERVER2005
首先,填加引用
using
System.Data.SqlClient;
連接
string
connectionString
=
"連接字元串你自己寫吧";
using
(SqlConnection
connection
=
new
SqlConnection(connectionString))
{
using
(SqlCommand
cmd
=
new
SqlCommand(SQLString,
connection))
{
try
{
connection.Open();
//
實際的資料庫操作,您自己寫吧
}
catch
(System.Data.SqlClient.SqlException
e)
{
connection.Close();
throw
e;
}
finally
{
cmd.Dispose();
connection.Close();
}
}
}
小賊OO飛飛,你太有才了。
人家問的是客戶端如何連接伺服器端的資料庫,而不是客戶端如何通過伺服器端操作資料庫
關鍵字是「連接資料庫」。
不要答非所問好不好,至於安全與否根本不是這里討論的問題。
❷ c怎麼連接sql server資料庫
1.准備工作: 准備相關的軟體(Eclipse除外,開源軟體可以從官網下載) <1>.Microsoft SQL server 2005 Express Edition 下載地址:http://download.microsoft.com/download/0/9/0/09020fab-d2c3-4a8c-b9e0-db53a7a30ae8/SQLEXPR_CHS.EXE <2>.SQL Server Management Studio 下載地址:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796#filelist <3>.SQL Server 2005 driver for JDBC 下載地址:http://download.microsoft.com/download/8/B/D/8BDABAE2-B6EA-41D4-B903-7916EF3690EF/sqljdbc_1.2.2323.101_enu.exe 2.JDBC連接SQL Server的驅動安裝 ,前兩個是屬於資料庫軟體,正常安裝即可(注意資料庫登陸不要使用windows驗證) 是用java連接嗎? 如果是,方法如下: <1> 將JDBC解壓縮到任意位置,比如解壓到C盤program files下面,並在安裝目錄里找到sqljdbc.jar文件,得到其路徑開始配置環境變數 在環境變數classpath 後面追加 C:\Program Files\Microsoft SQL Server2005 JDBC Driver\sqljdbc_1.2\enu\sqljdbc.jar <2> 設置SQLEXPRESS伺服器: a.打開SQL Server Configuration Manager -> SQLEXPRESS的協議 -> TCP/IP b.右鍵單擊啟動TCP/IP c.雙擊進入屬性,把IP地址中的IP all中的TCP埠設置為1433 d.重新啟動SQL Server 2005服務中的SQLEXPRESS伺服器 e.關閉SQL Server Configuration Manager <3> 打開剛剛安裝好的 SQL Server Management Studio,連接SQLEXPRESS伺服器, 新建資料庫,起名字為sample <4> 打開Eclipse a.新建工程-> Java -> Java project,起名為Test b.選擇eclipse->窗口->首選項->Java->installed JRE 編輯已經安裝好的jdk,查找目錄添加sqljdbc.jar c.右鍵單擊目錄窗口中的Test, 選擇Build Path ->Configure Build Path..., 添加擴展jar文件,即把sqljdbc.jar添加到其中 <5> 編寫Java代碼來測試JDBC連接SQL Server資料庫
❸ c++連接sql server資料庫是導入msado.dll出現以下錯誤怎麼辦
樓主你好,你可以重新下載一個msado.dll文件文件,然後按如下步驟操作:
一、解壓後直接拷貝該文件到系統目錄里:
1、Windows 95/98/Me系統,復制到C:WindowsSystem目錄下。
2、Windows NT/2000系統,復制到C:WINNTSystem32目錄下。
3、Windows XP/WIN7/Vista系統,復制到C:WindowsSystem32目錄下。
4、如果您的系統是64位的請將文件復制到C:WindowsSysWOW64目錄
二、打開"開始-運行-輸入regsvr32 msado.dll文件",回車即可解決。
已上傳並提供下載連接,可根據需要下載。
msado.dll文件下載地址:http://www.edowning.net/soft/79018.htm
❹ c語言連接SQL Server資料庫並操作表中數據的代碼沒有錯誤,但是無法執行
1、配置
ODBC數據源
。
2、使用
SQL函數
進行連接。
對於1、配置數據源,配置完以後就可以編程操作資料庫了。
對於2、使用SQL函數進行連接,參考代碼如下:
#include
#include
#include
void
main()
{
HENV
henv;
//環境
句柄
HDBC
hdbc;
//數據源句柄
HSTMT
hstmt;
//執行語句句柄
unsigned
char
datasource[]="數據源名稱";
//即源中設置的源名稱
unsigned
char
user[]=
"用戶名";
//資料庫的帳戶名
unsigned
char
pwd[]=
"密碼";
//資料庫的密碼
unsigned
char
search[]="select
xm
from
stu
where
xh=0";
SQLRETURN
retcode;
//記錄各SQL函數的返回情況
//
分配環境句柄
retcode=
SQLAllocEnv(&henv);
//
等介於
SQLAllocHandle(SQL_HANDLE_ENV,
SQL_NULL
,
&henv);
//
設置ODBC環境版本號為3.0
retcode=
SQLSetEnvAttr(henv,
SQL_ATTR_ODBC_VERSION,
(void*)SQL_OV_ODBC3,
0);
//
分配連接句柄
retcode=
SQLAllocConnect(henv,&hdbc);
//
等介於
SQLAllocHandle(SQL_HANDLE_DBC,
henv,
&hdbc);
❺ 求問C++怎麼連接SQL server啊
(樓上兩位說的很對,我給你粘一篇文章吧 初學者 看看有好處。
需要的話 你可以留下郵箱 我這有一些初學者的文檔可以發給你很不錯,希望繼續努力。面試,到時候一切都是是浮雲。。。哈哈)
基本流程
萬事開頭難,任何一種新技術對於初學者來說最重要的還是「入門」,掌握其要點。讓我們來看看ADO資料庫開發的基本流程吧!
(1)初始化COM庫,引入ADO庫定義文件
(2)用Connection對象連接資料庫
(3)利用建立好的連接,通過Connection、Command對象執行SQL命令,或利用Recordset對象取得結果記錄集進行查詢、處理。
(4)使用完畢後關閉連接釋放對象。
准備工作:
為了大家都能測試本文提供的例子,我們採用Access資料庫,您也可以直接在我們提供的示例代碼中找到這個test.mdb。
下面我們將詳細介紹上述步驟並給出相關代碼。
【1】COM庫的初始化
我們可以使用AfxOleInit()來初始化COM庫,這項工作通常在CWinApp::InitInstance()的重載函數中完成,請看如下代碼:
BOOL CADOTest1App::InitInstance()
{
AfxOleInit();
......
【2】用#import指令引入ADO類型庫
我們在stdafx.h中加入如下語句:(stdafx.h這個文件哪裡可以找到?你可以在FileView中的Header Files里找到)
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
這一語句有何作用呢?其最終作用同我們熟悉的#include類似,編譯的時候系統會為我們生成msado15.tlh,ado15.tli兩個C++頭文件來定義ADO庫。
幾點說明:
(1) 您的環境中msado15.dll不一定在這個目錄下,請按實際情況修改
(2) 在編譯的時候肯能會出現如下警告,對此微軟在MSDN中作了說明,並建議我們不要理會這個警告。
msado15.tlh(405) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
【3】創建Connection對象並連接資料庫
首先我們需要添加一個指向Connection對象的指針:
_ConnectionPtr m_pConnection;
下面的代碼演示了如何創建Connection對象實例及如何連接資料庫並進行異常捕捉。
BOOL CADOTest1Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///創建Connection對象
if(SUCCEEDED(hr))
{
hr = m_pConnection- >Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);///連接資料庫
///上面一句中連接字串中的Provider是針對ACCESS2000環境的,對於ACCESS97,需要改為:Provider=Microsoft.Jet.OLEDB.3.51;
}
}
catch(_com_error e)///捕捉異常
{
CString errormessage;
errormessage.Format("連接資料庫失敗!\r\n錯誤信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///顯示錯誤信息
}
在這段代碼中我們是通過Connection對象的Open方法來進行連接資料庫的,下面是該方法的原型
HRESULT Connection15::Open ( _bstr_t ConnectionString, _bstr_t UserID, _bstr_t Password, long Options )
ConnectionString為連接字串,UserID是用戶名, Password是登陸密碼,Options是連接選項,用於指定Connection對象對數據的更新許可權,
Options可以是如下幾個常量:
adModeUnknown:預設。當前的許可權未設置
adModeRead:只讀
adModeWrite:只寫
adModeReadWrite:可以讀寫
adModeShareDenyRead:阻止其它Connection對象以讀許可權打開連接
adModeShareDenyWrite:阻止其它Connection對象以寫許可權打開連接
adModeShareExclusive:阻止其它Connection對象以讀寫許可權打開連接
adModeShareDenyNone:阻止其它Connection對象以任何許可權打開連接
我們給出一些常用的連接方式供大家參考:
(1)通過JET資料庫引擎對ACCESS2000資料庫的連接
m_pConnection- >Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\test.mdb","","",adModeUnknown);
(2)通過DSN數據源對任何支持ODBC的資料庫進行連接:
m_pConnection- >Open("Data Source=adotest;UID=sa;PWD=;","","",adModeUnknown);
(3)不通過DSN對SQL SERVER資料庫進行連接:
m_pConnection- >Open("driver={SQL Server};Server=127.0.0.1;DATABASE=vckbase;UID=sa;PWD=139","","",adModeUnknown);
其中Server是SQL伺服器的名稱,DATABASE是庫的名稱
Connection對象除Open方法外還有許多方法,我們先介紹Connection對象中兩個有用的屬性ConnectionTimeOut與State
ConnectionTimeOut用來設置連接的超時時間,需要在Open之前調用,例如:
m_pConnection- >ConnectionTimeout = 5;///設置超時時間為5秒
m_pConnection- >Open("Data Source=adotest;","","",adModeUnknown);
State屬性指明當前Connection對象的狀態,0表示關閉,1表示已經打開,我們可以通過讀取這個屬性來作相應的處理,例如:
if(m_pConnection- >State)
m_pConnection- >Close(); ///如果已經打開了連接則關閉它
------------------------------------------------------------------------------------
呵呵,是啊,我以前不做VC的,所以這次老闆有個項目要做,沒辦法啊!!以後多請教啊!!
------------------------------------------------------------------------------------
你現在不少基礎的不會,上來就連接資料庫有點難
------------------------------------------------------------------------------------
要是你用vc6,就右健點擊要添加變數的控制項,選擇classwizard,選擇member variables選項卡,它會自動指到你想要添加變數的控制項,你直接點選擇add variable,起個名字就可以了
------------------------------------------------------------------------------------
我關鍵是不知道怎麼給控制項添加與之相對應的變數!!請明示啊!!
------------------------------------------------------------------------------------
CBaseEditBox是什麼東西?你不要這樣定義。應該先把控制項放在對話框窗體上,再給這個控制項添加與之相對應的變數,這樣,VC就自動把控制項和變數聯系起來了
------------------------------------------------------------------------------------
剛弄,不怎麼會,請明示!!!
我想把從資料庫中讀出來的記錄放在一個文本框中!
然後在界面上放置了一個edit box
我在類C***Dlg中添加了變數
public:
CBaseEditBox m_list
接下來我在一個按鈕的onOK事件里連接資料庫並想把得到的記錄放到m_list里
// 讀入庫中各欄位並加入列表框中
while(!m_pRecordset- >adoEOF)
{
var = m_pRecordset- >GetCollect("UserName");
if(var.vt != VT_NULL)
strName = (LPCSTR)_bstr_t(var);
var = m_pRecordset- >GetCollect("Password");
if(var.vt != VT_NULL)
strAge = (LPCSTR)_bstr_t(var);
m_list.AddString( strName + " -- > "+strAge );
m_pRecordset- >MoveNext();
}
// 默認列表指向第一項,同時移動記錄指針並顯示
m_list.SetCurSel(0);
然後一大堆錯誤:
d:\microsoft visual studio\myprojects\testado\testadodlg.h(18) : error C2146: syntax error : missing "; " before identifier "m_list "
d:\microsoft visual studio\myprojects\testado\testadodlg.h(18) : error C2501: "CBaseEditBox " : missing storage-class or type specifiers
d:\microsoft visual studio\myprojects\testado\testadodlg.h(18) : error C2501: "m_list " : missing storage-class or type specifiers
TestADODlg.cpp
d:\microsoft visual studio\myprojects\testado\testadodlg.h(18) : error C2146: syntax error : missing "; " before identifier "m_list "
d:\microsoft visual studio\myprojects\testado\testadodlg.h(18) : error C2501: "CBaseEditBox " : missing storage-class or type specifiers
d:\microsoft visual studio\myprojects\testado\testadodlg.h(18) : error C2501: "m_list " : missing storage-class or type specifiers
D:\Microsoft Visual Studio\MyProjects\TestADO\TestADODlg.cpp(195) : error C2065: "m_list " : undeclared identifier
D:\Microsoft Visual Studio\MyProjects\TestADO\TestADODlg.cpp(195) : error C2228: left of ".AddString " must have class/struct/union type
D:\Microsoft Visual Studio\MyProjects\TestADO\TestADODlg.cpp(201) : error C2228: left of ".SetCurSel " must have class/struct/union type
Generating Code...
Error executing cl.exe.
請問什麼原因那?
------------------------------------------------------------------------------------
http://www.vckbase.com/document/viewdoc/?id=496
把文章中連接Access的語句換成:
連接SQL資料庫:
m_pConnection- >Open("Provider=SQLOLEDB.1;Server=192.168.1.6;DATABASE=mysql;UID=sa;PWD=;","","",adModeUnknown);
其中Server是SQL伺服器的名稱,DATABASE是庫的名稱
❻ 在C#中如何連接到本地sql server 2000資料庫(代碼樣例)
資料庫建好了吧。連接起來在菜單欄,數據裡面選添加新數據,然後選資料庫 一步步按提示下去就可以了
❼ vs c語言連接sql server怎麼都連接不上,請教!
首先把圖截清楚一點
關鍵信息是:輸入的伺服器地址、報錯信息(不是你那個自定義的資料庫連接失敗)
❽ 用vc++連接到sql server資料庫
(1).在文件stdafx.h中最後一個#endif的前一行寫入
#import
"C:\program
files\common
files\System\ado\msado15.dll"
no_namespace
\
rename("EOF","EndOfFile")
\
rename("LockTypeEnum","newLockTypeEnum")
\
rename("DataTypeEnum","newDataTypeEnum")
\
rename("FieldAttributeEnum","newFieldAttributeEnum")
\
rename("EditModeEnum","newEditModeEnum")
\
rename("RecordStatusEnum","newRecordStatusEnum")
\
rename("ParameterDirectionEnum","newParameterDirectionEnum")
如果你的系統不是安裝在C盤的話就把#import
後面的C改成系統所有的盤
--------------------------------------------------------------------------
(2).在C***App類的public:下加入
_RecordsetPtr
m_pADOSet;
bool
ADOExecute(_RecordsetPtr
&ADOSet,
_variant_t
&strSQL);
在private:下加入
private:
_ConnectionPtr
ADOConn;
--------------------------------------------------------------------------
在class
C***App
:
public
CWinApp
{
...
};之後#endif之前加入
extern
CxxxApp
theApp;
--------------------------------------------------------------------------
(3)在BOOL
C***App::InitInstance()函數中Enable3dControls();
//
Call
this
when
linking
to
MFC
statically這一行下面加入
if(
FAILED(::CoInitialize(NULL))
)
{
AfxMessageBox("ADO
Init
failed");
return
false;
}
try
{
ADOConn.CreateInstance(__uuidof(Connection));
ADOConn->Open("DSN=OBDC數據源;Provider=MSDASQL","用戶","密碼",
adConnectUnspecified);//這一行要自已修改
}
catch(_com_error
&e)
{
CString
err;
err.Format("%s",
(char*)(e.Description())
);
AfxMessageBox(err);
}
catch(...)
{
AfxMessageBox("Unknown
Error...");
}
m_pADOSet.CreateInstance(__uuidof(Recordset));
-------------------------------------------------------------------------
並在文件最後加上如下代碼:
bool
CxxxApp::ADOExecute(_RecordsetPtr
&ADOSet,
_variant_t
&strSQL)
{
if
(
ADOSet->State
==
adStateOpen)
ADOSet->Close();
try
{
ADOSet->Open(strSQL,
ADOConn.GetInterfacePtr(),
adOpenStatic,
adLockOptimistic,
adCmdUnknown);
return
true;
}
catch(_com_error
&e)
{
CString
err;
err.Format("ADO
Error:
%s",(char*)e.Description());
AfxMessageBox(err);
return
false;
}
}
------------------------------------------------------------------------
最後就可以在登錄時執行SQL語句了,比如用戶為CString
strUser,
密碼是CString
strPwd;資料庫表是user_table(user_id,
user_name,
user_pwd)則
_variant_t
sqlQuery
;
sqlQuery
=
"select
*
from
user_table
where
user_name='"+strUser
+"'
and
user_pwd='"+
strPwd
+"'";
theApp.ADOExecute(theApp.m_pADOSet,
sqlQuery
);
int
iCount
=
theApp.m_pADOSet->GetRecordCount();
if
(
0==iCount
)
{
AfxMessageBox(_T("密碼錯誤"),
MB_ICONEXCLAMATION);
return;
}
else
{
AfxMessageBox(_T("登錄成功"),
MB_ICONEXCLAMATION);
不知道能否幫到你,參考下把
❾ 用C語言怎麼實現與資料庫的連接
#include<mysql/mysql.h>
#include<stdio.h>
intmain()
{
MYSQL*conn;
MYSQL_RES*res;
MYSQL_ROWrow;
char*server="localhost";//本地連接
char*user="root";//
char*password="525215980";//mysql密碼
char*database="student";//資料庫名
char*query="select*fromclass";//需要查詢的語句
intt,r;
conn=mysql_init(NULL);
if(!mysql_real_connect(conn,server,user,password,database,0,NULL,0))
{
printf("Errorconnectingtodatabase:%s ",mysql_error(conn));
}else{
printf("Connected... ");
}
t=mysql_query(conn,query);
if(t)
{
printf("Errormakingquery:%s ",mysql_error(conn));
}else{
printf("Querymade... ");
res=mysql_use_result(conn);
if(res)
{
while((row=mysql_fetch_row(res))!=NULL)
{
//printf("num=%d ",mysql_num_fields(res));//列數
for(t=0;t<mysql_num_fields(res);t++)
printf("%8s",row[t]);
printf(" ");
}
}
mysql_free_result(res);
}
mysql_close(conn);
return0;
}
(9)c連接server資料庫擴展閱讀
C語言使用注意事項:
1、指針是c語言的靈魂,一定要靈活的使用它:
(1)、指針的聲明,創建,賦值,銷毀等
(2)、指針的類型轉換,傳參,回調等
2、遞歸調用也會經常用到:
(1)、遞歸遍歷樹結構
(2)、遞歸搜索
❿ 怎麼樣把c++程序和sql server資料庫連接起來啊
#include <icrsint.h>
#include<iostream>
#include<iomanip>
#include <string>
using namespace std;
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
void main()
{
CoInitialize(NULL);
_ConnectionPtr sqlSp;
HRESULT hr=sqlSp.CreateInstance(_uuidof(Connection));
if(FAILED(hr))
{
cout<<"_ConnectionPtr對象指針實例化失敗!!!"<<endl;
return ;
}
else {
try {
_bstr_t strConnect="Driver={sql server};server=127.0.0.1,1433;uid=sa;pwd=1234567890;database=test;";
sqlSp->Open(strConnect,"","",adModeUnknown);
}
catch(_com_error &e) {
cout<<e.Description()<<endl;
}
_RecordsetPtr m_pRecordset;
if(FAILED(m_pRecordset.CreateInstance( _uuidof( Recordset ))))
{
cout<<"記錄集對象指針實例化失敗!"<<endl;
return;
}
try {
m_pRecordset->Open("select * from T_Test",(IDispatch*)sqlSp,adOpenDynamic,adLockOptimistic, adCmdText);
}
catch (_com_error &e)
{
cout << e.Description()<<endl;
}
try {
m_pRecordset->MoveFirst();
while(!m_pRecordset->adoEOF)
{
string insertTime=(char*)(_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("InsertTime"))->Value);
cout<<insertTime<<endl;
m_pRecordset->MoveNext();
}
}
catch (_com_error &e)
{
cout << e.Description()<<endl;
}
}
system("pause");
}