Use data in an IVCursor to populate DataGridView in VB,NET
Dennis Wallentin
xldennis at gmail.com
Sat Jan 8 09:44:49 CST 2011
Beatrix,
Thanks for the input and I will look into it.
Kind regards,
Dennis
2011/1/8 Beatrix Willius <bwillius at gmx.de>
> For a normal listbox you need to loop through the cursor and add a row for
> each record. With a few 1.000 rows this is pretty slow. For Realbasic there
> is a control called DataGrid, which loads only the visible rows. I'm sure
> there will be something similar for .Net.
>
> Code from Listbox:
>
> Private Sub AddRowsOfListbox(theCursor as VCursor)
>
> dim theCol as integer
> dim FieldCount as Integer = theCursor.FieldCount
> dim ValentinaString as new HandleValentinaString
>
> Do
> Me.addrow "" '<------ row added here
> theCol = 0
>
> dim RowIDInformation as new Dictionary
> For currentField as Integer = 1 to FieldCount
> if InStr(theCursor.Field(currentField).Name, "ID") = 0 then
> Me.cell(Me.lastIndex, theCol) =
> ValentinaString.GetString(theCursor.Field(currentField)) '<---- add data to
> cells
> theCol = theCol + 1
> else
> RowIDInformation.Value(theCursor.Field(currentField).Name) =
> theCursor.Field(currentField).GetString
> end if
>
> next
> me.RowTag(me.LastIndex) = RowIDInformation
> loop until not theCursor.NextRecord
>
> End Sub
>
>
> Code from RequestRowData in DataGrid:
>
> Sub RequestRowData(RowNumber as Integer,Row as DataGridRow) '<--- no
> cursor here, just the row number
>
> me.LockDrawing = true
>
> dim theCol as integer = 1
> dim FieldCount as Integer = DataCursor.FieldCount
> dim ValentinaString as new HandleValentinaString
> dim RowIDInformation as new Dictionary
> DataCursor.Position = RowNumber '<--- set position of cursor
>
> For currentField as Integer = 1 to FieldCount
>
> if InStr(DataCursor.Field(currentField).Name, "ID") = 0 then
> Row.CellText(theCol) =
> ValentinaString.GetString(DataCursor.Field(currentField))
> theCol = theCol + 1
> else
> RowIDInformation.Value(DataCursor.Field(currentField).Name) =
> DataCursor.Field(currentField).GetString
> end if
> next
>
> Row.ItemData = RowIDInformation
> me.LockDrawing = false
>
> End Sub
>
> HTH
>
> On 08.01.2011, at 15:27, Dennis Wallentin wrote:
>
> > Thanks for the valuable input which is appreciated. No, I didn't find
> among the examples what I'm asking about.
> >
> > However, as usual ODBC comes to rescure but I still want to use .NET
> features to do it. The below code shows what I like to achieve:
> >
> > Dim con As String = "Driver={Valentina ODBC
> Driver};IsDatabaseLocal=yes;Database=FirstDB.vdb"
> > Dim sql As String = "SELECT * FROM Person"
> > Dim connection As New OdbcConnection(con)
> > Dim dataadapter As New OdbcDataAdapter(sql, connection)
> > Dim ds As New DataSet()
> > dataadapter.Fill(ds, "Person_Table")
> >
> > 'Populate the DataGridView with data.
> > Me.dgwVDB.DataSource = ds
> > Me.dgwVDB.DataMember = "Person_Table"
> >
> > How can I do it with Valentina's .NET Features?
>
> Mit freundlichen Grüßen/Regards
>
> Trixi Willius
>
> http://www.mothsoftware.com
> Mail Archiver X: archive, clean and search email
> http://www.beatrixwillius.de
> Fractals, 3d landscapes etc.
>
> _______________________________________________
> Valentina mailing list
> Valentina at lists.macserve.net
> http://lists.macserve.net/mailman/listinfo/valentina
>
--
With kind regards,
Dennis W
-------------------------------------------------
XL-Dennis about .NET & MS Excel
http://xldennis.wordpress.com/
XL-Dennis Consulting
http://www.excelkb.com/index.htm
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macserve.net/pipermail/valentina/attachments/20110108/573022bd/attachment.htm>
More information about the Valentina
mailing list