跳转到内容

Visual Basic/数据库

来自维基教科书,自由的教学丛书

数据库管理本身就是一个很大的主题,这本书无法涵盖,而且会分散对VB Classic编程的重点。不过,我们可以解释连接到数据库、从数据库检索信息等基本知识。

从VB连接到数据库的常用方法是使用ADO(ActiveX Data Objects)。

连接到数据库通常使用连接字符串。以下是一些连接到常用数据库类型的连接字符串示例

A

ACCESS

ODBC

标准安全

Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=; 


工作组

Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;SystemDB=C:\mydatabase.mdw; 


独占

Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Exclusive=1;Uid=admin;Pwd=; 


启用管理语句 要启用某些程序化管理功能,如CREATE USER、CREATE GROUP、ADD USER、GRANT、REVOKE和DEFAULTS(在创建CREATE TABLE语句时),请使用此连接字符串。

Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;ExtendedAnsiSQL=1; 

指定区域设置标识符 使用此标识符指定区域设置标识符,这有助于处理非美国格式的日期。

Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Locale Identifier=2057;Uid=Admin;Pwd=; 

以上示例使用en-gb区域设置标识符(2057)。


OLE DB, OleDbConnection (.NET)

[编辑 | 编辑源代码]

标准安全

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=; 


使用数据库密码 这是在使用Access中的设置数据库密码功能保护Access数据库时使用的连接字符串。

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:Database Password=MyDbPassword; 


工作组(系统数据库)

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:System Database=system.mdw; 


指定用户名和密码的工作组(系统数据库)

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:System Database=system.mdw;User ID=myUsername;Password=myPassword; 

DataDirectory功能

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\myDatabase.mdb;User Id=admin;Password=; 

ACCESS 2007 标准安全

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Persist Security Info=False;

使用数据库密码

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Jet OLEDB:Database Password=MyDbPassword;

Datadirectory功能

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\myAccess2007file.accdb;Persist Security Info=False;


E

Excel文件

ODBC

Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=C:\MyExcel.xls;DefaultDir=c:\mypath;

备注

SQL syntax "SELECT * FROM [sheet1$]". -- i.e. excel worksheet name followed by a "$" and wrapped in "[" "]" brackets. 


OLEDB

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

重要提示!

字符串中的引号“需要使用特定语言的转义语法进行转义。

c#, c++   \"
VB6, VBScript   ""
xml (web.config etc)   "
or maybe use a single quote '.

"HDR=Yes;"表示第一行包含列名,而不是数据。 "HDR=No;"表示相反的意思。

"IMEX=1;"告诉驱动程序始终将“混合”(数字、日期、字符串等)数据列读为文本。请注意,此选项可能会对Excel工作表写入访问产生负面影响。

SQL syntax "SELECT * FROM [sheet1$]". -- i.e. Excel worksheet name followed by a "$" and wrapped in "[" "]" brackets.

查看[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel]中的注册表REG_DWORD "TypeGuessRows"。这是让Excel不只使用前8行来猜测列数据类型的关键。将此值设置为0以扫描所有行。这可能会影响性能。如果Excel工作簿受密码保护,即使使用连接字符串提供正确的密码,您也无法打开它进行数据访问。如果您尝试,您将收到以下错误消息:“无法解密文件”。


Excel 2007文件

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";
前一页: Windows_Dialogs 目录 下一页: Windows_API
华夏公益教科书