Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Data binding из CSV с навигацией


Автор: Fish 18.2.2008, 10:44
Имеется файл CSV формата, с некоторыми данными. Необходимо вывести эти данные на форму с навигацией, т.е. двигаться по записям вперед-назад. Соединяюсь:
Код

Dim fromFile As String = "Test.csv"

                Dim ConStr As String

                ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\;Extended Properties=""Text;HDR=No;FMT=CSVDelimited"""
                Dim ExcelConnection As New System.Data.OleDb.OleDbConnection(ConStr)
                ExcelConnection.Open()
                Dim da As New System.Data.OleDb.OleDbDataAdapter("Select * FROM " & fromFile, ExcelConnection)

                Try
                    da.Fill(productInfo.Products)
                Catch ex As Exception
                    MsgBox(ex.Message, MsgBoxStyle.ApplicationModal)
                End Try


Далее, соединяю текстбокс с колонкой таблицы Products dataset-а productInfo:

Код

txtProductID.DataBindings.Add("Text", productInfo.Products, "Column2")


Но содержимое колонки не отображается в текстбоксе, в чем может быть проблема? Сколько не  smile
не получается. Пример сделан на базе "How- To Databinding with Navigation", только в нем коннект не с сиквелом, а с CSV файлом. 

Автор: informatik 18.2.2008, 12:50
Ну чтобы двигаться по записям (как я понял с помощью BindingNavigator, либо в ручную писать код), но по любому нужен BindingSource, с ним проще..


Попробуй создай BindingSource соединенный с productInfo.Products и вместо таблицы используй созданный BindingSource...


Код

    txtProductID.DataBindings.Add("Text", YourBindingSource, "Column2")


Автор: Fish 18.2.2008, 13:15
И с bindingsource не работает.

Автор: Fish 6.3.2008, 08:29
Вопрос закрыт. 
Кому интересно пишу ответ:
1. Загрузка CSV файла в датасет. 
Код

 Private Sub loadData()
        Dim objStreamReader As StreamReader
        Dim strLine As String
        'ofd  - OpenFileDialog
        objStreamReader = New StreamReader(ofd.FileName.ToString)

        strLine = objStreamReader.ReadToEnd
        strLine = strLine.Replace(Chr(10), "")

        row = strLine.Split(Chr(13))
        'pbc - ProgressBarControl
        pbc.Properties.Maximum = row.Length
        pbc.Position = 0
        Dim newRow As DataRow

        For i As Integer = 0 To row.Length - 1

            col = row(i).Split(",")

            newRow = ds.Tables(0).NewRow()
            For c As Integer = 0 To col.Length - 1
                newRow(c) = col(c)
            Next
            ds.Tables(0).Rows.Add(newRow)
            pbc.Position = i
        Next

    End Sub


2. Указываем в BindingSource для GridView1(Компонент DevExpress) наш датасет. GridView имеет навигационные кнопки по записям. Вот и всё. smile 

P.S.
Не забудьте:
Код

Imports System
Imports System.IO


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)