當前位置:首頁 » 編程語言 » sql資料庫封裝

sql資料庫封裝

發布時間: 2024-04-10 10:52:37

⑴ 鎬庝箞鎶妔ql鐨勬暟鎹搴撳皝瑁呮垚CDatabaseAccess綾

鍙浠ュ弬鑰冧竴涓嬭繖涓錛
浣跨敤CDatabase綾繪潵璇誨彇Microsoft Access鏁版嵁搴擄紝涓昏佸疄鐜頒簡浠ヤ笅鍔熻兘錛
浠嶮icrosoft Access 鏁版嵁搴撹誨彇鏁版嵁
涓嶄嬌鐢∣DBC鏁版嵁婧愯繘琛屾暟鎹搴撹繛鎺
鍦↙ist view鎺т歡涓鏄劇ず鏁版嵁
// 浠ヤ笅鏄閮ㄥ垎浠g爜

void CReadDBDlg::OnRead()
{
// TODO: Add your control notification handler code here

CDatabase database;
CString ssql;
CString sCatID, sCategory;
CString sDriver = "MICROSOFT ACCESS DRIVER (*.mdb)";
CString sDsn;
CString sFile = "c:\\works\\ReadDB\\Test.mdb"; // Change path here
int iRecord = 0;

// Create a pseudo DSN including the name of the Driver and the Excel file
// so we donhave to have an explicit DSN installed in our ODBC admin
sDsn.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s",sDriver,sFile);

TRY
{
// Open the database
database.Open(NULL,false ,false ,sDsn);

// the recordset
CRecordset recset( &database );

// Build the SQL query string
sSql = "SELECT CatID, Category "
"FROM Categories";

// Execute the query)
recset.Open(CRecordset::forwardOnly,sSql,CRecordset::readOnly);
ResetListControl();

// Column heading
m_ListControl.InsertColumn(1,"Cat ID",LVCFMT_LEFT,30,0);
m_ListControl.InsertColumn(1,"Category",LVCFMT_LEFT,30,1);

// Browse the result
while ( !recset.IsEOF() )
{
// Read one record
recset.GetFieldValue("CatID",sCatID);
recset.GetFieldValue("Category",sCategory);

// Insert values into the list control
m_ListControl.InsertItem(0,sCatID,0);
m_ListControl.SetItemText(0,1,sCategory);

// goto next record
recset.MoveNext();
}
// Close the database
database.Close();
}
CATCH(CDBException, e)
{
// If a database exception occured, pop up error msg
AfxMessageBox("Database error: "+e->m_strError);
}
END_CATCH;
}

void CReadDBDlg::ResetListControl()
{
m_ListControl.DeleteAllItems();
int iNbrOfColumns;
CHeaderCtrl* pHeader = (CHeaderCtrl*)m_ListControl.GetDlgItem(0);
if (pHeader)
{
iNbrOfColumns = pHeader->GetItemCount();
}
for (int i = iNbrOfColumns; i >= 0; i--)
{
m_ListControl.DeleteColumn(i);
}
}

⑵ C#/winform程序打包部署 如何把SQL 資料庫 一起打包進去

打包資料庫到安裝程序中

方法1. 備份/恢復
先備份資料庫:
backup database 資料庫 to disk='c:\備份.bak'

將備份文件打包到安裝程序中.

在第一次運行程序的時候,進行資料庫恢復(或專門做一個系統配置的程序,來控制完成此工作)
restore database 資料庫 from disk='c:\備份.bak'

方法2. 分離/附加

先分離資料庫:
sp_detach_db '資料庫名'

將數據文件(.mdf)和日誌文件(.ldf)打包到安裝程序中

在第一次運行程序的時候,進行資料庫附加(或專門做一個系統配置的程序,來控制完成此工作)
sp_attach_db '資料庫名','數據文件名(.mdf)','日誌文件名(.ldf)'

方法3. 用資料庫腳本

生成資料庫腳本:
sql200企業管理器
--右鍵要導出的資料庫
--所有任務
--生成SQL腳本
--<常規>里選擇"生成全部對象腳本"","在腳本文件中包含說明性標題"選上
--<設置格式>里,將"包含擴展屬性",選上
--<選項>中,將"表腳本選項"中的內容全部選擇上
--<選項>中,"安全性選項"是決定是否要包含創建資料庫及用戶許可權等的設置,根據你的需要選擇
--其他所有的選項保持默認值
--然後確定,將其保存成一個.sql文件

生成數據腳本(借用第三方工具):
SQL Server 資料庫SQL腳本導出器1.0
(1) 支持所有數據類型(如binary,text,image)
(2) 支持表結構、索引、所有記錄到SQL腳本
(3) 支持資料庫、表的瀏覽
(4) SQL語句的編輯、執行
(5) 可備份資料庫、表結構、記錄

將腳本文件打包到安裝程序中.

在第一次運行程序的時候,執行腳本(或專門做一個系統配置的程序,來控制完成此工作),通過調用isql.exe文件完成.
exec master..xp_cmdshell 'isql /E /i".sql文件"'
也可以直接在程序中調用isql.exe文件.或直接將isql.exe文件集成到程序安裝包中

很明確的。

=================================================================

補充

=================================================================

你的sql文件里要先創建資料庫,然後再創建表,創建表的時候要往該資料庫里創建表。

php訪問MYSQL資料庫封裝類(附函數說明)

復制代碼
代碼如下:
<?php
/*
MYSQL
資料庫訪問封裝類
MYSQL
數據訪問方式,php4支持以mysql_開頭的過程訪問方式,php5開始支持以mysqli_開頭的過程和mysqli面向對象
訪問方式,本封裝類以mysql_封裝
數據訪問的一般流程:
1,連接資料庫
mysql_connect
or
mysql_pconnect
2,選擇資料庫
mysql_select_db
3,執行SQL查詢
mysql_query
4,處理返回的數據
mysql_fetch_array
mysql_num_rows
mysql_fetch_assoc
mysql_fetch_row
etc
*/
class
db_mysql
{
var
$querynum
=
0
;
//當前頁面進程查詢資料庫的次數
var
$dblink
;
//資料庫連接資源
//鏈接資料庫
function
connect($dbhost,$dbuser,$dbpw,$dbname='',$dbcharset='utf-8',$pconnect=0
,
$halt=true)
{
$func
=
empty($pconnect)
?
'mysql_connect'
:
'mysql_pconnect'
;
$this->dblink
=
@$func($dbhost,$dbuser,$dbpw)
;
if
($halt
&&
!$this->dblink)
{
$this->halt("無法鏈接資料庫!");
}
//設置查詢字元集
mysql_query("SET
character_set_connection={$dbcharset},character_set_results={$dbcharset},character_set_client=binary",$this->dblink)
;
//選擇資料庫
$dbname
&&
@mysql_select_db($dbname,$this->dblink)
;
}
//選擇資料庫
function
select_db($dbname)
{
return
mysql_select_db($dbname,$this->dblink);
}
//執行SQL查詢
function
query($sql)
{
$this->querynum++
;
return
mysql_query($sql,$this->dblink)
;
}
//返回最近一次與連接句柄關聯的INSERT,UPDATE
或DELETE
查詢所影響的記錄行數
function
affected_rows()
{
return
mysql_affected_rows($this->dblink)
;
}
//取得結果集中行的數目,只對select查詢的結果集有效
function
num_rows($result)
{
return
mysql_num_rows($result)
;
}
//獲得單格的查詢結果
function
result($result,$row=0)
{
return
mysql_result($result,$row)
;
}
//取得上一步
INSERT
操作產生的
ID,只對表有AUTO_INCREMENT
ID的操作有效
function
insert_id()
{
return
($id
=
mysql_insert_id($this->dblink))
>=
0
?
$id
:
$this->result($this->query("SELECT
last_insert_id()"),
0);
}
//從結果集提取當前行,以數字為key表示的關聯數組形式返回
function
fetch_row($result)
{
return
mysql_fetch_row($result)
;
}
//從結果集提取當前行,以欄位名為key表示的關聯數組形式返回
function
fetch_assoc($result)
{
return
mysql_fetch_assoc($result);
}
//從結果集提取當前行,以欄位名和數字為key表示的關聯數組形式返回
function
fetch_array($result)
{
return
mysql_fetch_array($result);
}
//關閉鏈接
function
close()
{
return
mysql_close($this->dblink)
;
}
//輸出簡單的錯誤html提示信息並終止程序
function
halt($msg)
{
$message
=
"<html>\n<head>\n"
;
$message
.=
"<meta
content='text/html;charset=gb2312'>\n"
;
$message
.=
"</head>\n"
;
$message
.=
"<body>\n"
;
$message
.=
"資料庫出錯:".htmlspecialchars($msg)."\n"
;
$message
.=
"</body>\n"
;
$message
.=
"</html>"
;
echo
$message
;
exit
;
}
}
?>

⑷ 濡備綍灝哠QL鐨勬暟鎹搴撹繛鎺ュ皝瑁呭埌DLL涓

榪欐槸鐢變袱閮ㄦ搷浣滅粍鎴愮殑錛屼竴涓鏄浣犺佷粠鏁版嵁搴撲腑灝嗚繖涓瀛楁佃誨嚭鏉ワ紝鍐嶄竴涓灝辨槸灝嗕綘璇誨嚭鏉ョ殑鏁版嵁璧嬪紅extBox.Text涓灝辮岋紝浣犲彲浠ュ弬鑰冧竴涓嬶紙鍒澶嶅埗綺樿創錛屽洜涓洪渶瑕佹寜鐓т綘鐨勭▼搴忎慨鏀逛竴涓嬶級錛

//榪欎釜鏂規硶鏄鐢ㄦ潵鏄劇ず涓涓鍗曚竴鐨勮繑鍥炲艱岀紪鍐欑殑錛屼綘鍙闇瑕佸悜鍏朵腑浼犺緭浣犵殑

//SQL璇鍙ュ氨琛,榪欓噷鐨勮繑鍥炲肩殑淇℃伅灝辨槸string 綾誨瀷鐨勩

public string mysqlfun(string sql)

{

string info = "";

System.Data.SqlClient. conn = new System.Data.SqlClient.();

conn. = "Data Source=.;Initial Catalog=浣犵殑鏁版嵁搴撶殑鍚嶅瓧;Integrated Security=True";//榪欐槸涓涓榪炴帴瀛楃︿覆錛岃冭檻

//widows瀹夊叏妯″紡涓嬬櫥褰

conn.Open();

DataSet objDataSet = new DataSet();

obj = new ();

obj. = new SqlCommand(sql, conn);

obj.Fill(objDataSet, "info");

SqlCommand= new SqlCommand(sql, conn);

= .();

while (.Read())

{

info = .GetValue(0).ToString ();

}

return info;

}

鎴戠浉淇′綘搴旇ヤ細鍐橲QL璇鍙ュ惂錛

鐒跺悗灝卞儚鎴戝垰鎵嶈寸殑錛

textBox1.Text=info;

榪欐牱灝辮屼簡銆傚笇鏈涜兘甯鍒頒綘錛

鏈鍚庯紝榪樻湁涓鐐規彁紺猴紝鐪嬪埌浣犵殑鏁版嵁搴撴槸master錛屽傛灉鏄浣犺嚜宸辯粌涔犵殑錛屾渶濂借嚜宸卞壋寤轟竴涓鏁版嵁搴擄紝鍥犱負master鏁版嵁搴撴槸涓涓緋葷粺鏁版嵁搴擄紝浣跨敤瀹冩劅瑙変笉鏄寰堝ソ銆

熱點內容
java的命名空間 發布:2024-11-28 10:56:22 瀏覽:374
電信寬頻wifi如何更改密碼 發布:2024-11-28 10:56:22 瀏覽:365
安卓在哪裡關閉雲備份 發布:2024-11-28 10:49:55 瀏覽:558
數據在計算機中的存儲 發布:2024-11-28 10:49:54 瀏覽:621
php二級分類 發布:2024-11-28 10:40:49 瀏覽:851
機頂盒主時鍾同步伺服器地址修改 發布:2024-11-28 10:40:43 瀏覽:333
androidstudio輸出 發布:2024-11-28 10:36:20 瀏覽:591
華為手機的音樂在哪個文件夾 發布:2024-11-28 10:34:54 瀏覽:720
賽爾號萬能腳本 發布:2024-11-28 10:34:44 瀏覽:629
逆戰端游二級密碼在哪裡設置 發布:2024-11-28 10:28:18 瀏覽:867