问个简单问题散分
想用datagrid控件显示我查询到的记录集.这个记录集是单行集,不可以直接赋给datagrid.
Dim con As New Connection
Dim rs As New Recordset
Dim adore As New ADODB.Recordset
Dim i As Long
Private Sub Form_Load()
con.CursorLocation = adUseServer
con.Open "provider =sqloledb;data source =z007;user id = sa;initial catalog =master"
Set rs = con.OpenSchema(adSchemaTables)
'rs是单行集,所以不能直接把把rs赋给datagrid
'有两种方法,但都有问题不能解决
End Sub
方法一:
Private Sub Command1_Click()
For i = 0 To rs.Fields.Count - 1
adore.Fields.Append rs.Fields(i).Name, rs.Fields(i).Type'问题在于,传递过来的字段属性在ADO不认识.比如数据库中的adVarWChar字段类型
Next
adore.Open
Do While Not rs.EOF
adore.AddNew
For i = 0 To rs.Fields.Count - 1
adore.Fields(i).Value = rs.Fields(i)
Next
rs.MoveNext
Loop
Set DataGrid1.DataSource = adore
End Sub
方法二:
Private Sub Command2_Click()
Dim c As Column
For i = 0 To rs.Fields.Count - 1
Set c = DataGrid1.Columns.Add(i)
c.Caption = rs.Fields(i).Name
Next
Do While Not rs.EOF
For i = 0 To rs.Fields.Count - 1
DataGrid1.Columns(i).Value = rs.Fields(i)'问题在于,datagrid没有新的行可以使用,也就是说datagrid没有可用于填充数据的行
Next
rs.MoveNext
Loop
End Sub
谁能解决问题,100分送上.up者也有分.说到做到.