




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Visual Studio 2017使用AD前问数据库的实例Visual Studio 2017G NeowinVisual Studio 2017 version 以 Visual Studio 2015 和后续的 提供需要的解决方案,使其接纳这种转变并开发和交付利用下一波Windows平台创新(Windows 10)的新式应用程序,同时在所有Microsoft平台上支持多种设备和服务。下载地址:Studio 2017 新增功能支持 Windows 10 App 开发敏捷项目管理(Agile Portfolio Management )版本控制轻量代码注释(lightweight code
2、commenting )编程过程Visual Studio 2017 预览版提供的工具集非常适合生成利用下一波Windows平台创新(Windows 10)的新式应用程序,同时在所有Microsoft平台上支持设备和服务。支持在 Windows 10 中开发Windows应用商店应用程序,具体表现在对工具、控件和模板进行 了许多更新、对于 XAML应用程序支持新近提出的编码UI测试、用于XAML和HTML应用程序的UI响应能力分析器和能耗探查 器、增强了用于 HTML应用程序的内存探查工具以及改进了与Windows应用商店的集成。Visual Studio 2017 预览版进行了大量改进,可帮
3、助您在编码时提高 工作效率并集中精力。某些功能首先在Visual Studio Power Tools扩展中以试验性质出现,经过改进后才纳入到Visual Studio中。新版本中内置了多种提高工作效率的功能,如自动补全方括号、使用快 捷键移动整行或整块的代码以及行内导航。此外,Visual Studio 2017预览版的团队资源管理器增强了主页设计,可以更简便地导航到团队 协作功能,并可取消停靠挂起更改”和生成”使其显示在一个单独的 窗口中。在处理大型代码文件时,可能难以了解当前所处的位置。在VisualStudio 2017预览版中,可轻松地在两种模式之间切换滚动条的行为。 在栏模式中,可
4、更直接地查看脱字号位置等注释、更改所在位置和跟 踪错误。在图模式下,滚动条显示源代码的实时预览,而将鼠标悬停在代码上即可在工具提示中更详细地预览这段代码。然后单击代码所 在位置即可导航到该位置。2017中以ADO2017取代以前的ADO用惯ADO的程序员怎样在2017中怎样应用ADO呢?本人经过不断的摸索,发现在 2017中ADO 一样可以用,并且很好用。现在结合Visual Basic2017强大的类开发 功能,本人将ADO开发成组件使用,效果非常理想。我使用的方法如 下:启动Visual Studio2017。在新建项目中选择 Visual Basic项目, 在模板中选择类库,在名称中输入
5、类库名称如 DataAccess.确定后, 则进入类库开发环境中,把 Class1换名为ADOAccess在项目菜单中加入引用,选择 COM页,找至U Microsoft Actio nX Data Object 20 Library 或更高版本。COM选项是 Microsoft 为了区 分现在的 2017,兼容以前的开发方式而设置的,凡是 2017 之前的组 件都可在COMT中可找到。在类名上面写上 Imports ; Impo rts ;Imports ; Imports 4 条引用语句,这里分别是引用 ADO ADC的宏定义,设置空值函数的来 源。在类中定义一局部连接对象变量。 Priv
6、ate mCnnDB As New () 然后定义连接 Access 数据库的过程 . Access 数据库用 adUseClient 指定,通过数据访问方式访问数据库,又有多种版本,其中是最高版 本,它能访问 ACCESS 2000 所以这里的数据提供者指定为。指定了 本地数据库和提供者后,就可打开一个数据库了,用 open 方法实现。 完整的代码如下: 作用 : 连接 Access 数据库 参数: DBName 数据库名Public Sub ConnAccess(ByVal DBName As String)Dim strDB As String= adUseClient(DBName,
7、Admin)End Sub在ODBC中设置DNS在下面的ConnectionString 中指定用户名和 密码,最后用open方法打开。由于ODB(分有用户名和无用户名两者, 我们必须分别实现,借助类的函数名重载功能,我们编写两个同名的 过程,完整的代码如下:”作用:连接ODB(数据库(不需指定用户和密码)参数:ds nN ame为 ODB(名Public Sub ConnODBC(ByVal dsnName As String)= MSDASQL= Data Source= & dsnName & ()End Sub”作用:连接ODB(数据库(需指定用户和密码)参数:ds nN ame OD
8、B名,UserID 用户名,UserPwd用户密码Public Sub ConnODBC(ByVal dsnName As String, ByVal UserID AsString, ByVal UserPwd As String) = MSDASQL= Data Source= & dsnName& User ID=& UserID & ;Password= & UserPwd & ()End SubSQLServer 数据库是 Microsoft 开发的一种广泛使用的后台数据 库。访问SQLServer可以通过指明ODBC区动程序为SQLServer来实 现,即在连接字符串中要有 dri
9、ver=SQL Server, 由于它是后台数据 库,所以必须指明 SQLServer 所在的计算机名,通常把它称为服务器, 下面的ServerName就说明这点,然后指明是连接哪个数据库。其它的 类似上面的ODBCSQLServer的用户分为 WINNT和授权用户,WINNT 用户是不需要指定用户名和密码的超级用户,否则要指明用户名和密 码,这决定于 SQLServer 数据库管理员,在此不作详细说明,完整的 代码如下: 作用 : 连接 SQL Server 数据库”参数:ServerName服务器名QBName数据库名Public Sub ConnSQLServer(ByVal Serve
10、rName As String, ByVal DBName As String)With mCnnDB .ConnectionString = uid=;pwd= ;driver=SQL Server; & _server= & ServerName & ;database= & DBName.Open()End WithEnd Sub 作用: 连接 SQL Server 数据库参数:ServerName服务器名QBName数据库名,UserlD 用户名,UserPwd 用户密码Public Sub ConnSQLServer(ByVal ServerName As String, ByVal
11、DBNameAs String,ByVal UserlD As String, ByVal UserPwd As String)With mCnnDB.ConnectionString = uid= & UserlD & ;pwd= & UserPwd &;driver=SQL Server; & _server= & ServerName & _;database= & DBName.Open()End WithEnd SubOracle 数据库是目前最有影响的一种广泛使用的后台数据库。 访问Oracle先指明其提供者 MSDAORAOracle与Sql Server不同的是 它不是通过数据
12、库来管理的,所以它不需指明数据库,但它连接时必 须指明用户,即使是超级用户也如此,这是它的安全性能高于SqlServer 的理现之一,所以我们只须编写一个过程。其它类似。完整的 代码如下: 作用 : 连接 Oracle 数据库参数:ServerName服务器名QBName数据库名,UserlD 用户名,UserPwd 用户密码Public Sub ConnOracle(ByVal ServerName As String,ByVal UserlDAs String, ByVal UserPwd As String)With mCnnDB.Provider = MSDAORA.Connectio
13、nString = User lD= & UserlD & ; & _Password= & UserPwd & ; & _Data Source= & ServerName & .Open()End WithEnd Sub连结数据库后,就可以利用 ADOT充读写数据的函数。ADO在访问表时要指明其光标类型和锁类型,且指定其读写权限,这里我们编写的是有读写权限的通用的函数,所以我们指定光标CursorType 为 adOpenKeyset 锁为 adLockOptimistic , 2017需指明 其来源,这是为什么开始要有 Imports 语句的原因。有了这些,就 可通过执行查询语句来打开一
14、个表。打开表后,我们判断表是否为空 表,不是则移动记录至尾后再现移至记录头(这是为了可以访问其中 每条记录,特别是用RecordCount求记录数时不至于返回-1的关键), 最后返回一个记录集,完整的代码如下: 作用: 连接表”参数:TableName表名 返回:记录集Public Function OpenTable(ByVal TableName) AsDim strSql As StringDim rec Asrec = New ()= = = SELECT * FROM & TableName(strSql, mCnnDB) 打开记录集If Not Then ()()End IfOpe
15、nTable = recEnd Function下面是扩充上面函数的功能,可以跟据条件访问单个表Public Overloads Function OpenTable(ByVal TableNameAs String,ByVal strWhere As String) AsDim strSql As StringDim rec Asrec = New ()= = = SELECT * FROM & TableName & where & strWhere(strSql, mCnnDB) 打开记录集If Not Then()()End IfReturn recEnd Function继续扩充访问
16、表的功能。有时要打开多个表,读写其中的数据,我们可以通过建立查询视图实现,其它类似上面的OpenTable,完整的代码如下: 作用: 连接多表 参数: strSQL 返回:记录集Public Function ExecuteSQL(ByVal strSql As String) AsDim rec As New ()= = mCnnDB) 打开记录集ExecuteSQL = recEnd Function下面编写了一个用记录集填充 AxMSFlexGrid 网格的过程。其中函 数 RecordCount 是我自己编写的求记录集中记录的函数。这里不能直 接用ADC的RecordCount求得。如
17、果记录集是空,则退出过程。否则 求出记录集的记录数和字段来确定 AxMSFlexGrid 网格的行列数据,然 后读出记录集的数据直接填充到 AxMSFIexGrid网格。要说明的是读出 记录集的数据时要先判断是否为空值,由函数 IsDBNull 实现(函数 IsDBNull 来源于. 最后记录集应该返回到记录首位,否则影响了原有的记录集,完整的代码如下: 作用:用记录集的数据填充网格 参数: MSGrid 网格对象, rec 记录集对象Public Sub FillMsGrid(ByVal MSGrid As , ByVal rec As Dim i, j, RecordNum As Inte
18、gerIf Then Exit SubRecordNum = RecordCount(rec)= RecordNum + 1= + 1For i = 0 To RecordNum - 1For j = 0 To - 1If IsDBNull(rec(j).Value) Then(i + 1, j + 1, )Else(i + 1, j + 1, rec(j).Value)End IfNext(i + 1, 0, i)()Next()End Sub 作用:取记录集的记录数 参数: rec 记录集对象 返回:记录集的记录数Public Function RecordCount(ByVal rec
19、As As Integer Dim i As IntegerIf ThenRecordCount = 0Exit FunctionEnd IfWith rec.MoveFirst()Do While Not .EOFi += 1.MoveNext()Loop.MoveFirst()End WithRecordCount = iEnd Function以上代码编好后放在所定义的类中 . 下面的省略号代表上面的函 数和过程。可直接生成为DLL组件。方法是在2017编辑环境下选择生 成菜单中按生成就生成了 DLL文件。然后,你可以直接调用该组件了。ImportsImportsImportsImports 函数 IsDBNull 的来源Class ADOAccessPrivate mCnnDB As New ()End Class调用上面生成的组件方法如下: 在 Visual Basic2017 中建立一项 目,在窗口 Forml中加入一 AxMSFIexGrid网格命名为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物药品的疾病模型构建与药物筛选考核试卷
- 重症肺炎合并ARDS个案护理 2
- 5-14顺序脉冲信号发生器
- 2-2复合逻辑运算
- AIGC应用基础课件
- 统编版语文五年级下册第19课《牧场之国》精美课件
- 泰山职业技术学院《药理学实验》2023-2024学年第二学期期末试卷
- 芜湖市新芜区2024-2025学年小升初总复习数学精练含解析
- 兰州文理学院《医学概论实验A》2023-2024学年第一学期期末试卷
- 新疆和田地区2025年下学期高三年级二调考试数学试题试卷含解析
- 2025中美关税大战“对等关税”政策解读课件
- 4.3.2发生在肺内的气体交换 课件 人教2024版七年级生物下册
- 矿石百科知识儿童版
- 中国电影史知到课后答案智慧树章节测试答案2025年春华东师范大学
- 对外经济贸易大学自主招生个人陈述写作实例
- 教学设计-1.6 函数的连续性
- 微训练 一文多考 备考高效之小说《理水》 - 鲁迅(教师版)
- 二年级语文下册 语文园地四 同步练习(含答案)
- 四佰本帖子内容-中医美容
- 全新标前协议书范本下载
- 数字普惠金融赋能企业数字化转型
评论
0/150
提交评论