Как отобразить строку из DBF файла в нужной кодировке? - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

есть дбф файл с данными в кодировке Windows1251 (это я так предполагаю что в 1251, потому что использую дбф навигатор и ставлю вид отображения Windows1251) как мне загрузить данные из дбф файла в датагрид в читабельном виде? подскажите где ошибка? может запрос надо изменить? или я кодировку неправильно определил? или синтаксис кода преобразования неправильный я в заблуждении код чтения дбф в датагри
Листинг программы
  1. Dim cn2 As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Администратор\Desktop\Май\рег;Extended Properties=dBase IV;User Id=Admin;Password=")
  2. Dim da2 As New OleDb.OleDbDataAdapter("", cn2)
  3. Dim Command2 As OleDb.OleDbCommand = New OleDb.OleDbCommand("", cn2)
  4. Dim DS As DataSet = New DataSet
  5. Dim dgv As DataGridView = New DataGridView
  6. Dim Zapros As String = "Select FAMIL, IMJA, OTCH, NPSS, DOCUMENT, NOMER, SERIA, NNASP, NYLIC from 3"
  7.  
  8. If DS.Tables.Contains("dt") Then DS.Tables.Remove("dt")
  9. DS.Tables.Add("dt")
  10. da2.SelectCommand.CommandText = Zapros
  11. da2.Fill(DS.Tables("dt"))
  12. dgv.DataSource = DS.Tables("dt")
попытка преобразовать текст в нужную кодировку (мне кажется где-то здесь моя проблема)
Листинг программы
  1. Dim Str As String = dgv.Rows(1).Cells(1).Value
  2. Dim s() As Byte = System.Text.Encoding.GetEncoding(1251).GetBytes(Str)
  3. Dim ssa As String = System.Text.Encoding.Unicode.GetString(s)
  4. MsgBox(ssa)

Решение задачи: «Как отобразить строку из DBF файла в нужной кодировке?»

textual
Листинг программы
  1. fs.WriteByte(0) 'где 101 - Dos 866, а 201 - Win 1251

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы