| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1471 人关注过本帖
标题:[求助]vb中管理sql数据库的问题
只看楼主 加入收藏
zippoyhl
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2006-5-10
收藏
 问题点数:0 回复次数:11 
[求助]vb中管理sql数据库的问题

请教精通vb跟sql连接的高手,我用Adodc和Datagrid控件实现在VB中调用SQL数据库里的表.现在我想在VB中建立一个管理窗体,可以在该窗体中显示表的内容的同时,对表进行"添加""删除""保存"等操作.现在我不知道这几个按钮应该怎么编程.
  如果是与Access数据库连接的话,我知道添加是
Private Sub Command1_Click()
On Error Resume Next
Adodc3.Recordset.AddNew
End Sub

删除是
Private Sub Command2_Click()
On Error Resume Next
Adodc3.Recordset.Delete
End Sub

但sql我就不会了,哪位高手可以指点一下?

搜索更多相关主题的帖子: 数据库 sql 管理 
2006-05-25 08:21
zhuoer
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-5-19
收藏
得分:0 
'连接语句:
cn.Open "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=数据库名;Data Source=(local)"
'更新语句:
Dim supdate As String
supdate = " Update 表名 set 列值 = "
supdate = supdate & "'" & 控件名 & "'" supdate = supdate & " ,列值 = "
supdate = supdate & "'" & Text1.Text & "'"
supdate = supdate & " ,列值 = "
supdate = supdate & "'" & Text4.Text & "'" supdate = supdate & " where pingzhong_id = "
supdate = supdate & "'" & Text2.Text & "'"
'添加语句:
Dim sinsert As String
sinsert = "Insert Into 表名("
sinsert = sinsert & "id,"
sinsert = sinsert & "列值,"
sinsert = sinsert & "列值,"
sinsert = sinsert & "列值,"
sinsert = sinsert & "列值,"
sinsert = sinsert & "列值)"
sinsert = sinsert & "Values ("
sinsert = sinsert & "'" & Text1.Text & "',"
sinsert = sinsert & "'" & 控件名 & "',"
sinsert = sinsert & "'" & 控件名 & "',"
sinsert = sinsert & "'" & 控件名 & "',"
sinsert = sinsert & "'" & 控件名 & "',"
sinsert = sinsert & "'" & 控件名 & "')"
'执行语句:
Dim cmd1 As New ADODB.Command
With cmd1
.ActiveConnection = cn
.CommandType = adCmdText
.Prepared = True
.CommandText = sinsert '执行的SQL语句
.Execute
End With
cn.Close
2006-05-25 09:30
zippoyhl
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2006-5-10
收藏
得分:0 

我连接数据库的时候用的是adodc和datagrid控件,那你说的这段程序还起作用吗?或者说你这段程序是不用控件直接连数据库的?


执子之手~~于子偕老!
2006-05-25 15:02
xun135
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-5-22
收藏
得分:0 
说具体点啊
2006-05-25 20:38
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
收藏
得分:0 
我觉得可以使用AdoDc控件和Datagrid控件来显示表,而添加、修改、删除最好不要使用AdoDc控件,而使用ADO来操作,特别是删除容易出问题。ADO连接和2楼说的一样,查询用select语句,添加用insert into 语句,修改用update语句,具体用法自己查书。

2006-05-25 20:56
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
收藏
得分:0 
操作完成后再进行查询操作,将查询结果set给adodc1控件。

2006-05-25 20:59
zippoyhl
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2006-5-10
收藏
得分:0 
  我在form1和form2中分别添加了两个adodc,datagrid控件,这样,从form1中进入form2时可以显示数据库中的表格,我在form2中加入了 添加,删除,保存三个按钮,这样可以实现数据库的管理.现在我不知道应该用怎么样的编程语句可以实现 添加,删除,保存这三个按钮的功能,这样说清楚吗?
  上面那位大哥给的代码我看不懂,能给大体解释一下吗?

执子之手~~于子偕老!
2006-05-25 21:03
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
收藏
得分:0 
2楼用的也是ado

2006-05-25 21:13
maui2000
Rank: 1
等 级:新手上路
威 望:1
帖 子:113
专家分:0
注 册:2006-5-23
收藏
得分:0 

我一般是这么做的
先做个模块
用来连接你要连接的表的

'声明变量
Public mycon As New ADODB.Connection
Public myres As New ADODB.Recordset
'连接数据库对象
Public Function openmycon()
'如果数据是打开的就把它关掉
If mycon.State = adStateOpen Then
mycon.Close
End If
'连接数据库的路径,根据不同的表换下连接字符串就好了
mycon.Open "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=maui;Data Source=."
End Function
Public Function openmyres(ByVal sql As String)
If myres.State = adStateOpen Then
myres.Close
End If
With myres
' 游标 记录集在客户端打开
.CursorLocation = adUseClient
' 动态状态打开
.CursorType = adOpenDynamic
' 用SQL语句打开对象,且是用CMD的文本方法打开
.Open sql, mycon, , , adCmdText
End With
End Function

然后在程序中直接用CALL调用

程序:
显示在DATAGRID控件上
Call openmycon
Call openmyres("select id ,num1 ,num2,num3,num4,num5,num6,num7 from lottery ORDER BY id desc")
Set MSHFlexGrid1.DataSource = myres

添加
Call openmycon
Call openmyres("insert into lottery values('" + Trim(Text_time.Text) + "','" + Trim(Text1.Text) + "','" + Trim(Text2.Text) + "','" + Trim(Text3.Text) + "','" + Trim(Text4.Text) + "','" + Trim(Text5.Text) + "','" + Trim(Text6.Text) + "','" + Trim(Text7.Text) + "')")
MsgBox "添加成功", , "提示"

删除
Call openmycon
Call openmyres("delete lottery where id='" + Text_time + "'")
MsgBox "删除成功", , "提示"
MSHFlexGrid1.Clear



修改
Call openmycon
Call openmyres("update lottery set num1='" + Trim(Text1.Text) + "',num2='" + Trim(Text2.Text) + "',num3='" + Trim(Text3.Text) + "',num4='" + Trim(Text4.Text) + "',num5='" + Trim(Text5.Text) + "',num6='" + Trim(Text6.Text) + "',num7='" + Trim(Text7.Text) + "' where ID='" + time + "'")
MsgBox ("修改成功!")





记得当 myres被打开后
再打开会报错
用 myres.Close 关闭连接

2006-05-26 08:57
maui2000
Rank: 1
等 级:新手上路
威 望:1
帖 子:113
专家分:0
注 册:2006-5-23
收藏
得分:0 
如果楼主还看不明白
就没办法了
2006-05-26 08:57
快速回复:[求助]vb中管理sql数据库的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054770 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved