小白请教,通过类模块读取ACCSEE数据库问题

ru2nxx 2017-06-20 08:51:28
首先我建了个类,如下

Imports System.Data.OleDb

Public Class Class1
Dim cn As OleDbConnection
Dim cm As OleDbCommand
Dim da As OleDbDataAdapter
Dim ds As DataSet
Dim sql As String

Public Sub connDB()
Try
sql = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\成绩.accdb;Persist Security Info=False"
cn = New OleDbConnection(sql)
cn.Open()
Catch ex As Exception
MessageBox.Show("数据连接失败")
End Try
End Sub
End Class

然后建了个窗体,窗体里有个按钮和一个DataGridView控件,代码如下

Imports System.Data.OleDb

Public Class Form1

Dim cn As OleDbConnection
Dim cm As OleDbCommand
Dim da As OleDbDataAdapter
Dim ds As DataSet
Dim sql As String

' 我想实现这样的功能,按下这个按钮,DataGridView控件显示数据库里的内容,大概如下
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'sql = "select * from 语文"
'da = New OleDbDataAdapter(Sql, cn)
'ds = New DataSet
'da.Fill(ds)
'DataGridView1.DataSource = ds.Tables(0)
代码该怎么写呢?
End Sub
End Class


谢谢
...全文
505 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
比如说,两个方法接口设计
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click            
            DataGridView1.DataSource = ABC.CreateDataTable("select * from 语文")        
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click            
       using conn as new ABC.Dbconnect
            conn.Open
            DataGridView1.DataSource = Abc.CreateDataTable("select * from 语文", conn)        
       end using
    End Sub
足以看出,两种接口的目标差别。 你在设计开发的过程中,始终要从目标出发(不管它是好还是坏)。失去目标的人只会抄袭,从思路上就能看出来。
  • 打赏
  • 举报
回复
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click            
            DataGridView1.DataSource = ABC.CreateDataTable("select * from 语文"")        
    End Sub
先写出目标设计,然后再纠结什么类不类的。
heshenghua163 2017-07-22
  • 打赏
  • 举报
回复
设立一个公共模块,module,把常用的用public定义一下好了,窗体中直接调用。就不用每次写了 Module Module1 Public datastring As String = "Provider=Microsoft.ACE.OLEDB.12.0; Jet OLEDB:database password='123456'; Data Source=\\HESHENGHUA-PC\\mydata\mydata.accdb;Persist Security Info=False" Public hostname As String = System.Net.Dns.GetHostName ' 定义计算机名字 Public mydata As New OleDb.OleDbConnection(datastring) Public username As String = hostname '定义用户名称 End Module
xyxcc177109 2017-07-02
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/xyxcc177109/9879533这个很好用
OneCoderr 2017-06-30
  • 打赏
  • 举报
回复
引用 5 楼 ru2nxx 的回复:
[quote=引用 4 楼 szcoolly 的回复:] 不需要建类,因为每次查询结束后马上就把你的链接close了, 不要一直open着。反正我是这样做的,不知道是不是合乎道理。 cn.Open() ...... ...... cn.Close()
这个方法我已在用,我的问题是,一个程序有好多窗体,我每个窗体都要重复以下代码连接下数据库 sql = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\成绩.accdb;Persist Security Info=False" cn = New OleDbConnection(sql) cn.Open() 觉得好麻烦,所以想写成类(或者还有什么好办法么)[/quote] 你不close,会出“套接字”错误的。多个窗体用这个链接,是否可以其它窗体都用这一链接?
ru2nxx 2017-06-22
  • 打赏
  • 举报
回复
引用 4 楼 szcoolly 的回复:
不需要建类,因为每次查询结束后马上就把你的链接close了, 不要一直open着。反正我是这样做的,不知道是不是合乎道理。 cn.Open() ...... ...... cn.Close()
这个方法我已在用,我的问题是,一个程序有好多窗体,我每个窗体都要重复以下代码连接下数据库 sql = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\成绩.accdb;Persist Security Info=False" cn = New OleDbConnection(sql) cn.Open() 觉得好麻烦,所以想写成类(或者还有什么好办法么)
xdashewan 2017-06-21
  • 打赏
  • 举报
回复
你可以写个dbhelp类,参考http://bbs.csdn.net/topics/370011143 或者直接把数据库操作直接写事件里
ru2nxx 2017-06-21
  • 打赏
  • 举报
回复
引用 1 楼 g12339645 的回复:
为什么要建个类呢??
我目前写的代码都是在每个窗体启动时都连接(加载)下数据库,感觉这样不对啊 问题比较小白,望指教
OneCoderr 2017-06-21
  • 打赏
  • 举报
回复
不需要建类,因为每次查询结束后马上就把你的链接close了, 不要一直open着。反正我是这样做的,不知道是不是合乎道理。 cn.Open() ...... ...... cn.Close()
123工艺品 2017-06-20
  • 打赏
  • 举报
回复
为什么要建个类呢??

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧