当前位置:首页 » 编程语言 » 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鏁版嵁搴撴槸涓涓绯荤粺鏁版嵁搴掳纴浣跨敤瀹冩劅瑙変笉鏄寰埚ソ銆

热点内容
8加6算法 发布:2024-05-18 15:04:25 浏览:737
名图16款尊享什么配置 发布:2024-05-18 14:55:37 浏览:584
我的世界怎样刷出32k服务器 发布:2024-05-18 14:32:32 浏览:565
c语言程序设计江宝钏 发布:2024-05-18 14:32:22 浏览:780
右击文件夹总是转圈圈 发布:2024-05-18 14:31:10 浏览:696
新建数据库phpmyadmin 发布:2024-05-18 14:22:38 浏览:736
安卓手机设备连接在哪里 发布:2024-05-18 14:08:28 浏览:820
路由器的密码最多是多少位 发布:2024-05-18 13:58:18 浏览:420
扫描服务器名称如何填 发布:2024-05-18 13:36:29 浏览:115
芒果缓存的视频看不了视频怎么下载不了 发布:2024-05-18 13:35:14 浏览:520