2010-05-18 1 views
0

В последнее время у меня возникла проблема; когда я привязать записи к сетке, и запустить приложение, к которому DataGrid не заполняются, даже если записи содержат данныеПустая проблема с Datagrid в VB6

Я использую следующий код

Option Explicit 
Dim conn As New ADODB.Connection 
Dim cmd As New ADODB.Command 
Dim recordset As New ADODB.recordset 





Private Sub InitializeConnection() 
Dim str As String 

str = _ 
    "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
    "Data Source=" + App.Path + "\phonebook.mdb;" & _ 
    "Persist Security Info=False" 

    conn.CursorLocation = adUseClient 

    conn.ConnectionString = str 

    conn.Open (conn.ConnectionString) 


End Sub 
Private Sub AbandonConnection() 
    If conn.State <> 0 Then 
     conn.Close 
    End If 
End Sub 
Private Sub Persons_Read() 

    Dim qry_all As String 

    ' qry_all = "select * from person,web,phone Where web.personid = person.id And phone.personid = person.id" 
    qry_all = "SELECT * FROM person" 

    Call InitializeConnection 

    cmd.CommandText = qry_all 
    cmd.CommandType = adCmdText 

    Set cmd.ActiveConnection = conn 


    If conn.State = 1 Then 

     Set recordset = cmd.Execute() 

    End If 

    Call BindDatagrid 


    Call AbandonConnection 


End Sub 
Private Function Person_Add() 

End Function 
Private Function Person_Delete() 

End Function 
Private Function Person_Update() 

End Function 
Private Sub BindDatagrid() 



    Set dg_Persons.DataSource = recordset 


    dg_Persons.Refresh 
End Sub 

Private Sub cmd_Add_Click() 
    Person_Add 
End Sub 

Private Sub cmd_Delete_Click() 
    Person_Delete 
End Sub 

Private Sub cmd_Update_Click() 
    Person_Update 
End Sub 

Private Sub Form_Load() 
    Call Persons_Read 

End Sub 

Private Sub mnu_About_Click() 
    frm_About.Show 

End Sub 

Заранее спасибо

ответ

0

Она была решена не закрывая соединение сразу после запроса!

1

Для меня, я был в состоянии исправить эту проблему, добавив следующую строку в мой код после установки тайм-аут соединения

conn.CursorLocation = adUseClient 

Это решило мою проблему