最近由于工作需要开始接触vb2010,也叫vb.net。相比vb6.0有面向对象编程的优势。同时接触一门新语言,要更快的实际应用起来,链接数据库是必不可少的。之前用vba写过一个售书工具,正好可以拿来改造成vb.net程序。同时考虑到面向对象编程,尽力使用MVC模式编程。其中链接数据库的部分被写在一个模块中,可以切换选择用ole直连oracle,或者用odbc连接dsn数据源。具体如下:

1.dao层新建一个模块

Option Explicit Off

ImportsMicrosoft.Data.OdbcModuledaoPublic conndsn AsOdbcConnectionPublic connole AsOleDb.OleDbConnectionPublic connectionString1 As String

Public connectionString2 As String = "Provider=MSDAORA;Data Source=xx;User ID=xx;Password=xx;"

SubOdbcConnection()

connectionString1= "DSN=sht1;UID=sheet;Pwd=sheet;"

Tryconndsn= NewOdbcConnection(connectionString1)

conndsn.Open()MsgBox("数据库连接成功!", MsgBoxStyle.OkOnly, "连接状态")Catch ex AsExceptionMsgBox("数据库连接发生错误!", MsgBoxStyle.OkOnly, "系统错误")End

End Try

End Sub

SubOleConnection()Tryconnole= NewSystem.Data.OleDb.OleDbConnection(connectionString2)

connole.Open()MsgBox("采用ole数据库连接成功!", MsgBoxStyle.OkOnly, "连接状态")Catch ex AsExceptionMsgBox("数据库连接发生错误!", MsgBoxStyle.OkOnly, "系统错误")End

End Try

End Sub

SubCloseConndsn()

conndsn.Close()

conndsn.Dispose()End Sub

SubCloseConole()

connole.Close()

connole.Dispose()End Sub

End Module

2.数据库设计,字典表如下:

TableName

TableId

FieldName

TableId

Type(Oracle)

Primary key

书目表

bookTab

书目号

bookCode

varchar2(20)

Y

书名

bookName

varchar2(50)

定价

price

number(5,2)

折扣

discount

number(3,2)

分类

classification

varchar2(50)

分类号

classificationCode

varchar2(50)

库存数

inventoryNum

INTEGER

TableName

TableId

FieldName

TableId

Type(Oracle)

Primary key

顾客表

customerTab

顾客号

customerCode

varchar2(50)

Y

姓名

name

varchar2(50)

工号

jobNum

varchar2(50)

TableName

TableId

FieldName

TableId

Type(Oracle)

Primary key

购书经历表

purchaseExperienceTab

顾客号

customerCode

varchar2(50)

Y

购书日期

purchaseDate

DATE

Y

书单

bookList

varchar2(3000)

金额

moneyAmount

number(5,2)

建表语句:

DB Create

create table bookTab (

bookCode

varchar2(20)

not null,

bookName

varchar2(50),

price

number(5,2),

discount

number(3,2),

classification

varchar2(50),

classificationCode

varchar2(50),

inventoryNum

INTEGER

)

;

alter table bookTab add(constraint pk_bookCode

primary key(bookCode));

create table customerTab (

customerCode

varchar2(50)

not null,

name

varchar2(50),

jobNum

varchar2(50)

)

;

alter table customerTab add(constraint

pk_customerCode primary key(customerCode));

create table purchaseExperienceTab

(

customerCode

varchar2(50)

not null,

purchaseDate

DATE

not null,

bookList

varchar2(3000),

moneyAmount

number(5,2)

)

;

alter table purchaseExperienceTab

add(constraint pk_CodeDate primary key(customerCode,purchaseDate));

插入数据:

insert into bookTab

(bookCode,bookName,price,discount,classification,classificationCode,inventoryNum)values(‘9787532489510‘,‘老象恩仇记‘,12.8,0.75,‘童话系列‘,‘1111‘,100)

insert into bookTab

(bookCode,bookName,price,discount,classification,classificationCode,inventoryNum)values(‘9787532489527‘,‘神奇的警犬-沈石溪激情动物小说‘,13.85,0.8,‘童话系列‘,‘1111‘,200)

insert into bookTab

(bookCode,bookName,price,discount,classification,classificationCode,inventoryNum)values(‘9787533266066‘,‘小男生杜歌飞‘,133.85,0.9,‘男生系列‘,‘2222‘,50)

insert into bookTab

(bookCode,bookName,price,discount,classification,classificationCode,inventoryNum)values(‘9787533266067‘,‘Public変数/定数の宣‘,133.85,0.9,‘男生系列‘,‘2222‘,50)

insert into customerTab

(customerCode,name,jobNum)values(‘1‘,‘汪晓阳‘,‘wm139a0‘)

insert into customerTab

(customerCode,name,jobNum)values(‘02‘,‘汪雨‘,‘wm110‘)

3.新建一个bookClass实体类:

Public ClassbookClassPrivate bookCode As String

Private bookName As String

Private price As Single

Private discount As Single

Private classification As String

Private classificationCode As String

Private inventoryNum As Integer

Sub New()Me.bookCode =bookCodeMe.bookName =bookNameMe.price =priceMe.discount =discountMe.classification =classificationMe.classificationCode =classificationCodeMe.inventoryNum =inventoryNumEnd Sub

Function getBook(ByVal bookCode As String) AsbookClassReturnselectBook(bookCode)End Function

Function getBookCode() As String

Return Me.bookCodeEnd Function

Function getBookName() As String

Return Me.bookNameEnd Function

Function getPrice() As Single

Return Me.priceEnd Function

Function getDiscount() As Single

Return Me.discountEnd Function

Function getClassification() As String

Return Me.classificationEnd Function

Function getClassificationCode() As String

Return Me.classificationCodeEnd Function

Function getInventoryNum() As Integer

Return Me.inventoryNumEnd Function

Sub setBookCode(ByVal bookCode As String)Me.bookCode =bookCodeEnd Sub

Sub setBookName(ByVal bookName As String)Me.bookName =bookNameEnd Sub

Sub setPrice(ByVal price As Single)Me.price =priceEnd Sub

Sub setDiscount(ByVal discount As Single)Me.discount =discountEnd Sub

Sub setClassification(ByVal classification As String)Me.classification =classificationEnd Sub

Sub setClassificationCode(ByVal classificationCode As String)Me.classificationCode =classificationCodeEnd Sub

Sub setInventoryNum(ByVal inventoryNum As Integer)Me.inventoryNum =inventoryNumEnd Sub

End Class

新建customerClass实体类:

Public ClasscustomerClassPrivate customerCode As String

Private name As String

Private jobNum As String

Sub New()Me.customerCode =customerCodeMe.name =nameMe.jobNum =jobNumEnd Sub

Function getCustomer(ByVal customerCode As String) AscustomerClassReturnselectCustomer(customerCode)End Function

Function getCustomerCode() As String

Return Me.customerCodeEnd Function

Function getName() As String

Return Me.nameEnd Function

Function getJobNum() As String

Return Me.jobNumEnd Function

Sub setCustomerCode(ByVal customerCode As String)Me.customerCode =customerCodeEnd Sub

Sub setName(ByVal name As String)Me.name =nameEnd Sub

Sub setJobNum(ByVal jobNum As String)Me.jobNum =jobNumEnd Sub

End Class

4.表现层上用vb控件画出窗体很方便快速:

其页面代码如下:

Public ClasssellBookPrivate Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) HandlesTextBox1.KeyDownIf e.KeyCode = Keys.Enter Then

Dim book AsbookClass

book= NewbookClass

book=book.getBook(TextBox1.Text)

DataGridView1.Rows.Add()

DataGridView1.Item("num", DataGridView1.Rows.Count - 2).Value = DataGridView1.Rows.Count - 1DataGridView1.Item("bookCode", DataGridView1.Rows.Count - 2).Value =TextBox1.Text.Trim

DataGridView1.Item("bookName", DataGridView1.Rows.Count - 2).Value =book.getBookName()

DataGridView1.Rows(DataGridView1.Rows.Count- 2).Cells(3).Value =book.getPrice()

DataGridView1.Rows(DataGridView1.Rows.Count- 2).Cells(4).Value =book.getDiscount()

Label2.Text= book.getPrice() * book.getDiscount() +Label2.TextEnd If

End Sub

Private Sub sellBook_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosingCallCloseConole()End Sub

Private Sub sellBook_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadCallOleConnection()

Label2.Text= 0

End Sub

Private Sub TextBox2_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) HandlesTextBox2.KeyDownIf e.KeyCode = Keys.Enter Then

Dim customer As NewcustomerClass

customer=customer.getCustomer(TextBox2.Text.Trim)

Label11.Text=customer.getName

Label12.Text=customer.getJobNumEnd If

End Sub

End ClassView Code

今天就先写到这里,这个页面已经能跑起来了,页面使用了常用的DataGridview控件,输入顾客编号或者书目条码按回车自动检索,合计金额也是自动根据购书单算出的。程序待继续完善。。。

原文:http://www.cnblogs.com/wangxiaoyang/p/3573359.html

vb odbc数据源 oracle,vb.net写的odbc连接dsn数据源和ole链接oracle的小例子相关推荐

  1. mybatis连接oracle12乱码,使用mybatis链接oracle数据库出现账号密码错误解决

    使用mybatis链接oracle数据库步骤 最近oracle老师布置下来了作业,要求使用传统的java代码链接oracle数据库做一个小程序,因为我已经很熟练的掌握了ssm框架的开发,以前用的是my ...

  2. oracle怎么不让别的电脑连接,[转载]修改计算机名字导致oracle连接不上的解决方案...

    修改计算机名称 后在Eclipse项目中中, 连接oracle出错问题: 错误日志: 1 : admin/1登录,失败,后台提示; [ DRM NOTICE ] :conf/supportDB.pro ...

  3. 如何配置ODBC数据源

    1.在控制面板中,双击管理工具,然后打开ODBC数据源管理器. 2.在"系统DSN"选项卡中,单击"添加"按钮,打开"创建新数据源"对话框, ...

  4. win8数据源设置mysql_Win8系统ODBC数据源有何重要功能?

    对计算机发展比较有研究的朋友一定会知道ODBC,它是一个比较古老的东西,发展到现在Win8系统上版本已经是3.8了.微软虽然没有对ODBC做很大的更新,但是正因为ODBC是一个比较成熟和古老的规范,因 ...

  5. win7下怎么配置ODBC数据源

    我的系统是win7旗舰版的,找了半天也没有找到控制面板中的额管理工具--数据源,后来上网查了之后发现win7不是这样打开ODBC数据源管理器的,打开ODBC数据源管理器的方法是在cmd命令框中输入od ...

  6. WIN7下创建ODBC数据源到SQL Server的新数据源

    北邮计算机数据库实验四需求 此方法是用JDBC-ODBC访问数据库 (1)单击[开始]-->[控制面板]-->[ODBC] 然后打开[ODBC数据源管理器]对话框 (2)在[ODBC数据源 ...

  7. 润乾报表数据源配置 Linux,润乾报表中连接 ODBC 数据源的报表部署方法

    在润乾报表中提供了多种数据源的连接配置,其中包括关系数据库(JDBC).ODBC 数据源和多维数据库.在部署报表应用的时候,以上提到的各种数据源的配置也不尽相同,下面我们介绍一下如何部署连接 ODBC ...

  8. 如何查看本机中的ODBC数据源

    直入主题: 1.在开始菜单找到windows管理工具,打开后找到ODBC数据源(32位) 或者ODBC数据源(64位)点击. 点开始之后就能够看到已经配置过的数据源驱动了. 选择之后,点击配置可进入到 ...

  9. oracle mssql交换数据库,Database link 连接oracle MSSql 实现逻辑数据互导

    项目的需要,需要将原有mssql里面的数据导入到新的oracle数据库架构下来,因为有数据结构需要通 过逻辑导入,故mssql的导入工具不能满足搞笑数据互导的需要. 网上找了些解决方案,透明网关什么的 ...

最新文章

  1. 中文自然语言处理(NLP)(三)运用python jieba模块计算知识点当中关键词的词频
  2. linux中ps aux和ps -ef下显示的意义
  3. 源代码提交SOP(Git版)
  4. 实用MYSQL语句收集
  5. Win10 Linux GPT分区方案,win10+Ubuntu 20.04 LTS双系统安装(UEFI + GPT)(图文,多图预警)
  6. 天文学家用AI探测宇宙:借助图像识别探索银河系中的红巨星
  7. feign直接走熔断_121 SpringCloud之服务熔断、隔离、Hystrix、 Dashboard和turbine
  8. wordpress 通过域名无法访问_关于在宝塔面板的基础上搭建Wordpress个人博客的教程...
  9. 【职业】大一规划、体验生活、故事里
  10. php下载大文件不稳定,window_Apache2+PHP在Windows2000下不稳定解决方案,1  制作一个bat文件在计划 - phpStudy...
  11. linux 启动u盘引导,U盘启动引导安装linux
  12. linux centos 网易云音乐,Centos7.4安装网易云音乐教程
  13. ai人工智能培训讲师计算机视觉讲师叶梓:计算机视觉领域的自监督学习模型——MAE-9
  14. 支付宝接口报错 insufficient-isv-permissions 错误原因: ISV权限不足解决方案
  15. 小技巧|H5禁止手机虚拟键盘弹出
  16. oracle数据库报错1033,ORACLE出现错误1033和错误ORA-00600的解决方法
  17. (c++)求平均成绩和优秀率
  18. 实现listview条目点击显示和隐藏
  19. 从神龙川到大仙顶——2018秋
  20. 圆柱模板行业B2B站点打造MIP推送+熊掌号推送+历史普通推送插件

热门文章

  1. 我对架构的理解-概念篇
  2. x86 服务器常见问题和故障诊断流程
  3. MySQL | MySQL 数据库系统(四)- 数据库的备份与恢复
  4. 启动tomcat和java步骤
  5. 关于对于工作方式的一些总结。
  6. 【EXCEPTION_INIT】自定义错误名称并关联错误号
  7. 【C】输出乘法口诀表
  8. 【Oracle】DBMS_STATS.GATHER_TABLE_STATS分析表
  9. 解决Android Studio安装过程中“SDK tools directory is missing”的问题
  10. selenium 获取不了标签文本的解决方法