vb2005 ado连接数据库问题

lkclover 2009-03-11 09:46:00
我是从vb6+sql2000转向vb2005

在vb6中 画个ado空间和表格空间 DataSource 选个ado就连接上了
Adodc.ConnectionString = P_conn1
Adodc.RecordSource = sStr
Adodc.Refresh
写几个简单的代码就连接上了
直接修改表格的数据就能保存到数据库了

在vb2005我看了一些例子,要设个数据集(DataSet)固定好数据表结构在连接

我想问的问题是 怎样不建数据集可以像vb6一样动态的联系数据库
在GridView可以直接修改,删除,新增数据能保存到数据库

vb2005 可以做到像vb6这样吗?
请了解的朋友给段代码研究下,需要添加哪几个空间?
我最多只能给100分,多了给不了.需要分的请谅解!



...全文
581 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lkclover 2009-03-17
  • 打赏
  • 举报
回复
感谢 pjagz 以及其他人的帮助!
pjagz 2009-03-15
  • 打赏
  • 举报
回复
Public Class Form1

Dim ds As New DataSet
Dim Ad As SqlClient.SqlDataAdapter
Dim Conn As Data.SqlClient.SqlConnection

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' 连接 [添加引用System.Data]
Dim datSql As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=D:\temp\sql.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

Conn = New Data.SqlClient.SqlConnection(datSql)
Conn.Open()

Dim Ad As New SqlClient.SqlDataAdapter("SELECT * FROM 数据表", Conn)
Ad.Fill(ds, "数据表")
DataGridView1.DataSource = ds
DataGridView1.DataMember = "数据表"
Conn.Close()

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'更新数据库表
Call SavedtTab()
End Sub


Private Sub SavedtTab()
'动态获取SQL语句,更新数据库
Dim TabName As String = "数据表"
Ad = New SqlClient.SqlDataAdapter("SELECT * FROM " & TabName, Conn)
Dim SqlBuilder As New SqlClient.SqlCommandBuilder(Ad)
Ad.DeleteCommand = SqlBuilder.GetDeleteCommand
Ad.InsertCommand = SqlBuilder.GetInsertCommand
Ad.UpdateCommand = SqlBuilder.GetUpdateCommand
Ad.Update(ds, TabName)
End Sub

End Class
lkclover 2009-03-15
  • 打赏
  • 举报
回复
我把ds定义成控件

保存时不加
Ad.DeleteCommand = SqlBuilder.GetDeleteCommand
Ad.InsertCommand = SqlBuilder.GetInsertCommand
Ad.UpdateCommand = SqlBuilder.GetUpdateCommand

这三句也可以保存
你为什么加能告诉我为什么吗?
lkclover 2009-03-15
  • 打赏
  • 举报
回复
12楼 我画了个DataSet才可以

你这个函数里没定义ds
你是怎么用的?
pjagz 2009-03-15
  • 打赏
  • 举报
回复
' 连接 [添加引用System.Data]
datPath = "E:\Test_vb\Mhtynejexl"
datSql = "Data Source=.\SQLEXPRESS;AttachDbFilename=" & datPath & "\jexl.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

Dim Conn As New Data.SqlClient.SqlConnection(datSql)
Conn.Open()

Dim Ad As New SqlClient.SqlDataAdapter("SELECT * FROM 表名", Conn)
Dim ds As New DataSet
Ad.Fill(ds, "表名")
DataGridView1.DataSource = ds
DataGridView1.DataMember = "表名"
'--------------------------
'更新数据库表
Private Sub SavedtTab()
Dim TabName As String = "表名"
Ad = New SqlClient.SqlDataAdapter("SELECT * FROM " & TabName, Conn)
Dim SqlBuilder As New SqlClient.SqlCommandBuilder(Ad)
Ad.DeleteCommand = SqlBuilder.GetDeleteCommand
Ad.InsertCommand = SqlBuilder.GetInsertCommand
Ad.UpdateCommand = SqlBuilder.GetUpdateCommand
Ad.Update(ds, TabName)
End Sub
lkclover 2009-03-14
  • 打赏
  • 举报
回复
7楼的 是SQL语句操作的通用模板吧
我问的关键是怎么用动态的sql语句代码加.net控件 和datagrid 连接的数据库
修改 datagrid中的数据后可以保存到数据库
想飞的狼 2009-03-13
  • 打赏
  • 举报
回复
顶,
lkw5657 2009-03-13
  • 打赏
  • 举报
回复

[Quote=引用 7 楼 hugang8216 的回复:]


Public Class DBOperation

Shared Function DBOperate(ByVal SQLString As String, ByRef Msg As String) As DataTable

Try

Dim CONN As String = "Server=;DataBase=;Integrated Security=SSPI;Provider=SQLOLEDB"
Dim oleconn As New OleDb.OleDbConnection(CONN)
Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(SQLString, oleconn)

[/Quote]
之后还可以绑定到DataGrid
white_dos 2009-03-12
  • 打赏
  • 举报
回复
ado 跟ado.net差别就在dataset了
hugang8216 2009-03-12
  • 打赏
  • 举报
回复


Public Class DBOperation

Shared Function DBOperate(ByVal SQLString As String, ByRef Msg As String) As DataTable

Try

Dim CONN As String = "Server=;DataBase=;Integrated Security=SSPI;Provider=SQLOLEDB"
Dim oleconn As New OleDb.OleDbConnection(CONN)
Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(SQLString, oleconn)
cmd.CommandType = CommandType.Text
Dim sTokens() As String
sTokens = SQLString.Split(" ")
If Strings.InStr("INSERT,DELETE,UPDATE", sTokens(0).ToUpper) Then
If oleconn.State <> ConnectionState.Open Then
oleconn.Open() '打开数据库连接
End If
cmd.ExecuteNonQuery() '执行SQL语句
If oleconn.State <> ConnectionState.Closed Then
oleconn.Close() '关闭数据库连接
End If
If sTokens(0).ToUpper = "INSERT" Then
Msg = "插入记录成功"
End If
If sTokens(0).ToUpper = "DELETE" Then
Msg = "删除记录成功"
End If
If sTokens(0).ToUpper = "UPDATE" Then
Msg = "更新记录成功"
End If
Return Nothing
Else
Dim ObjectdaDataSet As New DataSet()
Dim adapter As New OleDb.OleDbDataAdapter()
adapter.TableMappings.Add("Table", "TEMP")
adapter.SelectCommand = cmd
If oleconn.State <> ConnectionState.Open Then
oleconn.Open() '打开数据库连接
End If
cmd.ExecuteNonQuery() '执行SQL语句
If oleconn.State <> ConnectionState.Closed Then
oleconn.Close() '关闭数据库连接
End If
adapter.Fill(ObjectdaDataSet) '填充数据集
Return ObjectdaDataSet.Tables("TEMP")
End If
Catch
MsgBox(Err.Description)
End Try
End Function

End Class
lkclover 2009-03-11
  • 打赏
  • 举报
回复
哪位高手贴断连接的代码上去!
风骑士之怒 2009-03-11
  • 打赏
  • 举报
回复
引用命名空间

用DataGridView
lkclover 2009-03-11
  • 打赏
  • 举报
回复
除了DataGridView 不用画其他ado空间?
周公 2009-03-11
  • 打赏
  • 举报
回复
System.Data.SqlClient.SqlConnection
System.Data.SqlClient.SqlCommand
System.Data.SqlClient.SqlDataAdapter
System.Data.DataTable

然后使用DataGridView控件来做。
lkclover 2009-03-11
  • 打赏
  • 举报
回复
代码具体怎么写可以列举下吗?

16,554

社区成员

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

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