Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

VB.NET:работа с текстовыми файлами в ADO.NET (OLEDB)

21K
15 ноября 2006 года
Ruslan Sakal'
3 / / 10.11.2006
Привет всем, кто это читает!
Может кто сталкивался с такой проблемой:
Работаю с текстовыми файлами (в формате CSV) приблизительного такого содержания:

"DRIVER","ROUTE","DAYWEEK","DATE"
"ДЕМО2","ДЕМО2","SUNDAY"
"ДЕМО2","ДЕМО2","MONDAY"

В каталоге болтается Schema.ini:
[test.csv]
ColNameHeader=True
Format=CSVDelimited
MaxScanRows=0
CharacterSet=OEM

Подключаюсь к файлам с помощью OLEDB (пример ниже), конект проходит, запросы обрабатываются. При редактированиии данных и сохранении в DataTable, все изминения нормально видны. Но на все попытки слить измененные данные уже в сам текстовик с DataAdapter студия меня просто игнорирует . Не ругается, но и не сохраняет.

Пример кода:

Код:
Module Module1
    Sub Main()
        Dim cn As OleDb.OleDbConnection
        Dim cd As OleDb.OleDbCommand
        Dim ad As OleDb.OleDbDataAdapter
        Dim ds As DataSet
        cn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\TXT\;Extended Properties=""text;HDR=Yes;FMT=Delimited""")
        ad = New OleDb.OleDbDataAdapter
        ds = New DataSet
        cd = New OleDb.OleDbCommand("SELECT * FROM TEST.CSV", cn)
        ad.SelectCommand = cd
        cn.Open()
        ad.Fill(ds)
        ds.Tables(0).Rows(1).Delete()
        ds.AcceptChanges()
        ad.Dispose()
        cn.Close()
    End Sub
End Module
273
15 ноября 2006 года
3A3-968M
1.2K / / 22.12.2005
Как вариант, можно в коде взять из DataSet таблицы данных и сохранить их в текстовом виде явно (через FileStream). Лучше посмотри отладчиком, действительно ли функция Delete() удаляет сроку из таблицы.
21K
15 ноября 2006 года
Ruslan Sakal'
3 / / 10.11.2006
Строки действительно удаляются (также пробывал добалять, редактировать).
А с FileStream будет заминка. Можно, сомо-собой, пробежаться в цикле по строкам и явно засунуть их в текстовик, но есть заминка - в файлике все строчные записи заключены в кавычки а числовые вписываются без них. Получается, что надо еще на лету опредилять тип записей в столбце, перевести из строковых значений в числовые (где это надо) а тогда уже, исходя с этого наполнять FileStream.
273
15 ноября 2006 года
3A3-968M
1.2K / / 22.12.2005
[quote=Ruslan Sakal']Строки действительно удаляются (также пробывал добалять, редактировать).
А с FileStream будет заминка. Можно, сомо-собой, пробежаться в цикле по строкам и явно засунуть их в текстовик, но есть заминка - в файлике все строчные записи заключены в кавычки а числовые вписываются без них. Получается, что надо еще на лету опредилять тип записей в столбце, перевести из строковых значений в числовые (где это надо) а тогда уже, исходя с этого наполнять FileStream.[/quote]
Узнать какой тип данных записывается в столбец не сложно. Свойство DataTable.Columns[0].DataType возвращает тип данных в столбце.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог