『壹』 什麼是資料庫連接
資料庫連接是一種關鍵的有限的昂貴的資源,這一點在多用戶的網頁應用程序中體現得尤為突出。對資料庫連接的管理能顯著影響到整個應用程序的伸縮性和健壯性,影響到程序的性能指標。資料庫連接池正是針對這個問題提出來的。資料庫連接池負責分配、管理和釋放資料庫連接,它允許應用程序重復使用一個現有的資料庫連接,而再不是重新建立一個;釋放空閑時間超過最大空閑時間的資料庫連接來避免因為沒有釋放資料庫連接而引起的資料庫連接遺漏。這項技術能明顯提高對資料庫操作的性能。
資料庫連接池在初始化時將創建一定數量的資料庫連接放到連接池中,這些資料庫連接的數量是由最小資料庫連接數來設定的。無論這些資料庫連接是否被使用,連接池都將一直保證至少擁有這么多的連接數量。連接池的最大資料庫連接數量限定了這個連接池能佔有的最大連接數,當應用程序向連接池請求的連接數超過最大連接數量時,這些請求將被加入到等待隊列中。資料庫連接池的最小連接數和最大連接數的設置要考慮到下列幾個因素:
1) 最小連接數
是連接池一直保持的資料庫連接,所以如果應用程序對資料庫連接的使用量不大,將會有大量的資料庫連接資源被浪費;
2) 最大連接數
是連接池能申請的最大連接數,如果資料庫連接請求超過此數,後面的資料庫連接請求將被加入到等待隊列中,這會影響之後的資料庫操作。
3) 如果最小連接數與最大連接數相差太大,
那麼最先的連接請求將會獲利,之後超過最小連接數量的連接請求等價於建立一個新的資料庫連接。不過,這些大於最小連接數的資料庫連接在使用完不會馬上被釋放,它將被放到連接池中等待重復使用或是空閑超時後被釋放。
『貳』 如何連接資料庫
如果您是ACCESS資料庫。這是最簡單的一種資料庫,它通常都是隨著資料庫源碼可以放在一起的,只需要知道FTP地址、賬戶與密碼就可以連接。利用FTP上傳工具上傳即可。上傳工具小編在下方資料參考處提供軟體下載鏈接。
『叄』 資料庫如何連接
//初始化資料庫連接
::CoInitialize(NULL);
連接資料庫
[cpp]viewplainprint?
BOOLCLogin::ConnectDB(void)
{
HRESULThr=NULL;
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");///創建Connection對象
if(SUCCEEDED(hr))
{
//登錄資料庫並連接資料庫DBCourse
//這里的server不能寫成127.0.0.1否則會出現未指定的錯誤,應該寫成sqlserver登錄界面的伺服器名稱
m_pConnection->ConnectionString="driver={SQLServer};server=LOGO-PC\LOGO;uid=DBCourse;pwd=DBCourse;";
m_pConnection->Open("","","",adConnectUnspecified);
m_pConnection->DefaultDatabase="DBCourse";
}
else
{
AfxMessageBox(TEXT("創建Connection對象失敗"));///顯示錯誤信息
returnFALSE;
}
}
catch(_com_errore)///捕捉異常
{
CStringerrormessage;
errormessage.Format(TEXT("連接資料庫失敗! 錯誤信息:%s(%ld)"),e.ErrorMessage(),e.Error());
AfxMessageBox(errormessage);///顯示錯誤信息
returnFALSE;
}
returnTRUE;
}
操作資料庫
[cpp]viewplainprint?
voidCLogin::OnBnClickedButton1()
{
if(m_user.GetWindowTextLength()<=0||m_password.GetWindowTextLength()<=0)
{
MessageBox(TEXT("請輸入用戶名或密碼!"),TEXT("錯誤:用戶名或密碼為空"),MB_OK|MB_ICONWARNING);
return;
}
if(FALSE==this->ConnectDB())return;
TCHARszUserName[20];
TCHARszPassword[50];
TCHARszSql[MAX_PATH];
//獲取用戶輸入的用戶名和密碼
m_user.GetWindowText(szUserName,20);
m_password.GetWindowText(szPassword,50);
//創建_RecordsetPtr用來執行資料庫操作
_RecordsetPtrpRecordset;
pRecordset.CreateInstance("ADODB.Recordset");
_tcscpy_s(szSql,TEXT("select*fromusrwhereuname='"));
_tcscat_s(szSql,szUserName);
_tcscat_s(szSql,TEXT("'andpasswd='"));
_tcscat_s(szSql,szPassword);
_tcscat_s(szSql,TEXT("';"));
pRecordset->Open(_variant_t(szSql),_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
intnResult=DLG_RESULT_OK;
if(pRecordset->RecordCount>0)
{
//MessageBox(TEXT("登錄成功!"),szUserName,MB_OK|MB_ICONINFORMATION);
}
else
{
MessageBox(TEXT("用戶名或密碼錯誤!"),TEXT("登錄失敗!"),MB_OK|MB_ICONINFORMATION);
nResult=DLG_RESULT_ERROR;
}
pRecordset->Close();
if(DLG_RESULT_OK==nResult)Exit(DLG_RESULT_OK);
}
哦忘了一件事了,還需要在stafx.h文件中引入dll文件的,如此
[cpp]viewplainprint?
//添加dll庫
#import"c:.dll"no_namespacerename("EOF","adoEOF")
//添加dll庫
//添加宏定義
#defineDLG_RESULT_OK1
#defineDLG_RESULT_ERROR2
#defineDLG_RESULT_CANCEL3
//添加宏定義『肆』 資料庫怎麼連接
方法/步驟
網路搜索heidisql下載,選擇綠色版下載
7
點擊資料庫名點擊打開,點擊表進入就可以查看錶里的數據了
『伍』 常見資料庫的連接方式有哪些呢
一種是以系統身份登陸,一種是以sql連接方式登錄
連接方式 ado,jdbc,odbc,ole db等『陸』 資料庫連接方式有哪些
在基於微軟IIS/PWS的網路平台上,通過伺服器端運行的ASP程序來訪問後台資料庫,是一種最常見的模式了。而對於小型的資料庫應用需求,微軟的Access資料庫,應該是與ASP程序配套使用的首選。由於Access資料庫的ODBC驅動程序支持的SQL指令全,執行效率高,所以Access後台資料庫+ASP伺服器端程序+客戶端IE瀏覽器,是一個精練實用高效的組合模式。
在這種使用模式中,ASP程序無疑是最重要的,是溝通客戶端和後台資料庫之間的橋梁。在ASP程序中,通過VB Script,建立對Access資料庫的連接,是客戶能夠訪問後台資料庫的前提。
一、建立Access資料庫連接的常用方法
在ASP中建立對Access資料庫連接的一般格式如下:
<%
DbPath=Server.MapPath(資料庫名)
Set Conn=Server.CreatObject(「ADODB.Connection」)
Conn.Open 「driver=;dbq=」& DbPath
Set rs=Server.CreatObject(「ADODB.Recordset」)
Rs.Open 數據表名或SQL指令,Connection對象,Recordset類型,鎖定類型
… …
%>
它的各步驟及參數意義如下:
第一行程序:利用Server對象的MapPath函數,取得要打開資料庫的完整的文件路徑,並存儲在變數DbPath中。這其中,資料庫名是我們需要指定的參數,應該用我們要打開的資料庫的實際名稱替代。如果資料庫名是直接作為常量出現,要用引號將其括起來,並且不能丟掉擴展名。例如資料庫是Test.mdb,則該行程序成為:DbPath=Server.MapPath(「Test.mdb」)。
第二行程序:建立一個ADO對象集中的Connection對象,也即連接對象。這是建立資料庫連接的初始步驟。執行這行程序後,Conn成為一個連接對象。
第三行程序:利用連接對象Conn的Open方法打開一個指定的資料庫。因為我們要打開的是Access資料庫,所以要指定ODBC驅動程序參數,表示要透過Access的ODBC驅動程序來訪問資料庫:driver=;。另一個參數dbq= & DbPath,運算後等效於dbq=Server.MapPath(資料庫名) ,是利用了第一行的Server.MapPath(資料庫名)函數,用來指定要打開的資料庫文件。到這里,就已經打開了資料庫名指定的資料庫。如果資料庫名是「test.mdb」,則打開Access資料庫Test.mdb。在這一行里指定的參數,要嚴格按照格式原樣寫出,不能省略或改動,也沒有可變參數。
第四行程序:建立一個ADO對象集中的Recordset對象,以便利用Recordset對象操作資料庫(當然,這只是對資料庫操作的多種方式之一)。執行這行後,rs就成為一個Recordset對象。
第五行程序:利用rs對象的Open方法打開資料庫中的數據表。這其中有四個參數,其意義如下:
數據表名或SQL指令串:在這個參數里指定要打開的資料庫內的數據表名稱,或者是用SQL的Select指令串確定的數據表的指定范圍數據,例如,資料庫Test.mdb中有數據表Number,則該參數成為「Number」,注意引號不能丟;若想打開數據表Number中xh欄位值小於90的數據記錄,則該參數可能成為如下的形式:
「Select * From Number Where xh < 90」。
Connection對象:指定已經打開的資料庫的Connection對象,在這里固定是Conn,注意無須引號的。
Recordset類型:表示打開數據表的方式,有四種選擇。數字0表示只讀方式,且當前記錄只能下移;數字1表示可讀寫方式,當前記錄可自由上下移動,但不能及時看到別的用戶建立的新記錄,除非重新啟動;數字2表示可讀寫方式,當前記錄可自由移動,而且可以及時看到別的用戶增加的新記錄;數字3表示只讀方式,但當前記錄可以自由移動。一般選擇2為好,除非為了禁止數據被修改。
鎖定類型:這個參數指定資料庫的鎖定功能。因為網路上的資料庫都是多用戶的,很可能同時有多個用戶在操作資料庫。為了避免錯誤,讓同一時間只可能有一個用戶修改數據,就要用鎖定功能。有四種選擇:數字1表示只讀方式鎖定,用戶不能更改數據;數字2表示悲觀鎖定,當一個用戶用rs對象開始修改數據時就鎖定資料庫,直到用戶用rs.Update更新記錄後,才解除鎖定;數字3表示樂觀鎖定,只有在數據寫入資料庫中時候才鎖定,不保險,慎用!數字4表示批次樂觀鎖定,只有在使用rs.UpdateBatch成批更新數據時候才鎖定數據記錄。屬於很少使用的。一般地,使用悲觀鎖定比較安全,但是效率要低些。
二、使用Recordset對象操作數據
用上面的方法打開資料庫,是利用了Recordset對象建立的資料庫連接,然後的對數據操作,也要使用該對象。
用rs.open 「數據表名」,Conn,2,2 方式打開數據表,就可以方便的對數據進行操作:
常見的操作對象:
rs.addnew :添加一個新記錄在數據表末尾。
rs.delete :刪除當前記錄。
rs.eof :判斷是否已過最後記錄。
rs.bof :判斷是否移過首記錄。
rs.update :數據修改生效。
rs(「欄位名」):當前記錄指定欄位的值。
從數據表中提取數據:用x=rs(「欄位名」)的格式,提取數據表中當前記錄指定欄位的值。
向數據表中填入或修改數據:用rs(「欄位名」)=數據值或變數的方式,修改當前記錄指定欄位的值。
三、使用SQL指令操作資料庫
在使用SQL指令對資料庫進行操作時,要用如下方式打開資料庫和操作:
<%
DbPath=Server.MapPath(資料庫名)
Set Conn=Server.CreatObject(「ADODB.Connection」)
Conn.Open 「driver=;dbq=」& DbPath
Sql=操作資料庫的指令串
Conn.Execute sql
… …
%>
四、使用DSN連接資料庫
在以上連接資料庫的方式中,都是在程序中指定資料庫,指定ODBC驅動程序。如果數據源有變化,就需要修改程序。如果在系統級別上,預先定義好數據源DSN,就可以避免這個麻煩。
在定義DSN的過程中,就已經指定好了數據源需要的ODBC驅動程序,也指定好了資料庫文件的實際路徑和名字,我們在程序中,只需要引用預先定義的數據源名DSN即可。
設定義好的DSN為test,則打開資料庫的方式為:
五、結束語
在ASP程序中,建立資料庫的連接和訪問資料庫,有很多方式和技術細節,在此難以一一詳述。實際上,對SQL Server資料庫,DBF資料庫,文本文件,電子表格文件等,也都可以很方便的打開和訪問,與對Access資料庫的訪問大同小異而已。如果說方便,Access應該是首選。如果考慮安全保密性,SQL資料庫更好些。使用系統數據源DSN的方式建立對資料庫的連接,具有更大的靈活性,也更簡便些。『柒』 資料庫怎麼連接,
樓上說的是java那邊的 我來說說C這邊的吧
我不知道你對代碼的了解度程是什麼 也太籠統了 不好說 我整理了下 vs基本現在用的就這幾種
資料庫 只要載入到SQLSERVER里就行了
程序鏈接資料庫的話 方法很多
1: webconfig文件
<configuration>
<connectionStrings>
<add name="ConnectionString1" connectionString="Data Source=LEUU\LEUU;Initial Catalog=學生成績管理;Integrated Security =True" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
name是連接字元串的名字
connectionString 是他的值。。
Data Source表示數據源,也就是sql服務的路徑和名稱,一般為IP地址
user id 是帳號, p.....。。
Initial Catalog表示資料庫名稱
Integrated Security=True表示打開數庫鏈接時集成windows身份驗證
1號方法 需要使用下面2號方法來調用 只不過可以在代碼中不用定義configuration的連接語句
不過 必需new
--------------------------------------------------------------------------------------------------
2 代碼中直接調用 SqlConnection類連接資料庫
(其實這樣不好 如果忘了關conn 別的地方就沒法再打開 還不抱錯 囧 不過你懂的調用資料庫次數少話 小程序這么寫簡單)
如果連接微軟的Sql Server7.0及以後版本資料庫,使用SqlConnection類建立連接效率較高。而連接其它支持ODBC的資料庫,必須使用OleDbConnection類。使用SqlConnection類必須引用如下命名空間:
Using System.Data;
using System.Data.SqlClient;
使用OleDbConnection類必須引用如下命名空間:
Using System.Data;
using System.Data.OleDb;
使用SqlConnection類建立連接的例子如下:
string txtConn="DATABASE=Northwind;SERVER=localhost;UID=sa;PWD=;";
SqlConnection conn=new SqlConnection(txtConn);//建立連接
其中DATABASE為資料庫名稱,這里為Northwind,必須安裝微軟Sql Server資料庫系統,並安裝自帶的資料庫例子Northwind,才能使用。UID為用戶名,PWD為密碼,Northwind資料庫安裝後的用戶名為sa,密碼為空。SERVER為所使用的資料庫伺服器,這里資料庫伺服器和資料庫應用程序在同一台計算機中,因此為localhost,中文意義是本地主機。
使用OleDbConnection類建立連接的例子如下:
string txtConn=//將作為OleDbConnection類對象conn的屬性ConnectionString的值
"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:\\VC#\\studentI.mdb";
OleDbConnection conn=new OleDbConnection(txtConn);//建立資料庫連接
Provider為所使用的資料庫驅動程序,DataSource為資料庫的位置。也可以使用Visual Studio.Net建立連接,見例子8_10B。方法Open()和Close(),打開和關閉資料庫連接。
-----------------------------------------------------------------------------------------
3 所謂的dbhelper類(以前自己寫的 可以多楚調用 高手別笑哈 這是一個單獨的cs文件 調用的話 new就行)
private static SqlConnection conn;
public static SqlConnection Conn
{
get
{
string sqlconn = ConfigurationManager.ConnectionStrings["Sqlcon"].ConnectionString;
if (conn == null)
{
conn = new SqlConnection(sqlconn);
conn.Open();
}
else if (conn.State == System.Data.ConnectionState.Closed)
{
conn.Open();
}
else if (conn.State == System.Data.ConnectionState.Broken)
{
conn.Close();
conn.Open();
}
return conn;
}
}
public static SqlDataReader GetProcReader(string sqlproc)
{
SqlCommand commd = new SqlCommand();
commd.Connection = Conn;
commd.CommandType = CommandType.StoredProcere;
commd.CommandText = sqlproc;
SqlDataReader reader = commd.ExecuteReader();
return reader;
}
public static SqlDataReader GetProcReader(string sqlproc, params SqlParameter[] para)
{
SqlCommand commd = new SqlCommand();
commd.Connection = Conn;
commd.CommandType = CommandType.StoredProcere;
commd.CommandText = sqlproc;
commd.Parameters.AddRange(para);
SqlDataReader reader = commd.ExecuteReader();
return reader;
}
public static int GetProcCommand(string sqlproc)
{
SqlCommand commd = new SqlCommand();
commd.Connection = Conn;
commd.CommandType = CommandType.StoredProcere;
commd.CommandText = sqlproc;
int num = commd.ExecuteNonQuery();
return num;
}
public static int GetProcCommand(string sqlproc, params SqlParameter[] para)
{
SqlCommand commd = new SqlCommand();
commd.Connection = Conn;
commd.CommandType = CommandType.StoredProcere;
commd.CommandText = sqlproc;
commd.Parameters.AddRange(para);
int num = commd.ExecuteNonQuery();
return num;
}