DataGrid为什么不能及时更新啊?
Private Sub cmdAdd_Click()
Dim SQLStr As String
Dim m As Integer
SQLStr = "INSERT INTO Example (Name,Sex,Age)VALUES('" & txtName & "','" & ComboSex & "','" & txtAge & "')"
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Sample for VB\Example.mdb;Persist Security Info=False"
SQLExt (SQLStr) '执行SQL语句
'判断里面是否有SELECT关键字
m = InStr(LCase(StrSearch), LCase("SELECT")) '如果是SELECT语句,则将SELECT语句作为Adodc1控件的记录源
If m > 0 Then
Adodc1.ConnectionString = ConnStr
Adodc1.RecordSource = SQLStr
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1 '在DataGrid1中显示结果
End If
MsgBox "记录添加成功!"
End Sub
请问执行上面的代码后,怎么DataGrid1里的数据不能自动更新啊? 要重新执行代码才看得到上次添加的内容.是代码有问题吗?
问题点数:20、回复次数:9Top
1 楼junki(『.NET技术争霸天下』)回复于 2005-06-01 12:49:10 得分 0
调换顺序试一试。。。Top
2 楼All_Heart(问个底儿掉)回复于 2005-06-01 12:52:55 得分 0
还是不行啊?Top
3 楼lightwu()回复于 2005-06-01 14:20:11 得分 0
你预先绑定了吗?Top
4 楼zuoxingyu(激情成就梦想)回复于 2005-06-01 16:53:19 得分 0
Set DataGrid1.DataSource = Adodc1 '在DataGrid1中显示结果
在这个语句前面加
Set DataGrid1.DataSource = nothing
Top
5 楼hr88rong(阿榕(http://www.caixiong.com/?69583361.htm))回复于 2005-06-01 17:57:24 得分 0
首先,我觉得你插入操作应该用连接对象的EXECUTE方法先执行,然后再给DATAGRID赋值,你的这句Adodc1.RecordSource = SQLStr可能是不正确的,我认为记录源应该不能动作查询,如果你将他改为Adodc1.RecordSource = "select * from Example"这样,我想应该就可以了!
我这样写就可以,如果改为插入的就不行了!
Dim cn As ADODB.Connection
Dim sql As String
Dim cnstring As String
Private Sub Command1_Click()
sql = "insert into sys_user (user_id,user_name,user_pass) values (2,'pp','pp')"
'Set DataGrid1.DataSource = cn.Execute("select * from sys_user")
cn.Execute sql
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
End Sub
Private Sub Form_Load()
cnstring = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;password=risesoft;Initial Catalog=MyStudy;Data Source=RISE06"
'Dim cn As New ADODB.Connection
Set cn = New ADODB.Connection
cn.Open cnstring
sql = "select * from sys_user"
'sql = "insert into sys_user (user_id,user_name,user_pass) values (2,'pp','pp')"
Adodc1.ConnectionString = cnstring
'Adodc1.CommandType = adCmdTable
Adodc1.RecordSource = sql
'Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
DataGrid1.Refresh
End SubTop
6 楼lightwu()回复于 2005-06-01 22:18:49 得分 10
楼上的说得对,数据源应当是返回集合的,跟刷新没有关系Top
7 楼cxbkkk(本命年,旺啊!)回复于 2005-06-02 00:11:26 得分 0
没搞清楚,反正我在属性里面设定绑订adodc1后,再添加那些都是自动更新了啊Top
8 楼All_Heart(问个底儿掉)回复于 2005-06-02 02:15:31 得分 0
谢谢各位的支持,但还是不能自动刷新记录.我预先没有绑定ADODC控件及数据源.Top
9 楼lightwu()回复于 2005-06-02 11:31:40 得分 10
应当预先绑定,datagrid不支持解除或重新绑定,但是你可以更改adodc里面的数据源,通过刷新adodc,就达到了刷新datagrid的目的Top




