Как вставить стол foxpro 6 в Visual Studio 2017?

Недавно я хочу обновить свое старое приложение, которое использовало foxpro 6 для записи. Теперь я хочу использовать VB.net для создания нового. Причина в том, что мой проект представляет собой POS-систему для магазина моего дяди. поскольку компьютер слишком старый и может сломаться в любое время, мне нужно обновить его и совместить с Windows 10, потому что новый компьютер использует Windows 10. Вот почему мне нужно создать новое приложение. Но когда я использую службы ссылок (источник данных > добавить новый источник данных) в Visual Studio, он показывает, что моя таблица пуста, что неверно, Моя таблица заполнена данными. Итак, как я могу успешно связать таблицу с Visual Studio?

Строка подключения Dsn=inventory

PS: я использую правильный драйвер odbc, тестирую его несколько раз и стою на месте.

Спасибо вам всем.


person Austin Leung    schedule 24.05.2017    source источник
comment
Немного не по теме, но если у вас VS2017, что мотивирует использовать VBA для создания нового приложения? Тем не менее, я не думаю, что на ваш вопрос можно ответить без более конкретной информации.   -  person Mathieu Guindon    schedule 24.05.2017
comment
извините, что я что-то упустил, причина в том, что мой проект представляет собой POS-систему для магазина моего дяди. поскольку компьютер слишком старый и может сломаться в любое время, мне нужно обновить его и совместить с Windows 10, потому что новый компьютер использует Windows 10. Вот почему мне нужно создать новое приложение.   -  person Austin Leung    schedule 24.05.2017
comment
Я хотел сказать, что с VS2017 вы можете написать автономный исполняемый файл с серверной частью SQL Server Express и использовать все современные технологии (пользовательский интерфейс WPF, Entity Framework и т. Д.) ... POS-систему, написанную на VBA (поэтому размещенную в что, Excel? Доступ?) кажется гораздо более трудоемким, чем решение .net - если вы придерживаетесь VBA, я настоятельно рекомендую вам использовать мой Rubberduck, так что вы можете по крайней мере иметь модульные тесты и надлежащие инструменты IDE для этого масштабного проекта.   -  person Mathieu Guindon    schedule 24.05.2017
comment
извините, я совершил большую ошибку. Я постоянно пользуюсь VB.net. Простите за это   -  person Austin Leung    schedule 24.05.2017
comment
Ой. Ok. В любом случае приятно, что вы добавили эту предысторию, но в вашем сообщении все еще отсутствуют важные детали, которые сделали бы его ответственным. У вас есть ошибки? Соединение установлено? Вы можете видеть таблицы, но не их данные? Visual Studio - это просто IDE; у вас есть актуальный код, который подключается к данным foxpro? Можете ли вы включить фрагмент кода, который соединяет и воспроизводит проблему? См. минимальный воспроизводимый пример.   -  person Mathieu Guindon    schedule 24.05.2017
comment
Ну извини за размытость. Я просматривал множество веб-сайтов, и видео на YouTube говорили, что использование функции build в VS может успешно связать таблицы с проектом и продолжить. Но попробовал пару раз все равно не получается. Например, я попытался использовать функцию источника данных, чтобы связать мою таблицу. Это показывает, что соединение успешно развернуто. Но когда я перешел к следующему шагу выбора объекта базы данных, он показывает, что моя таблица пуста. И я попытался создать таблицу на foxpro 9, VS может нормально распознать и показать все данные.   -  person Austin Leung    schedule 24.05.2017
comment
Включение строки подключения было бы хорошим началом   -  person Mathieu Guindon    schedule 24.05.2017
comment
На самом деле я думал, что это единственный метод, которым я могу связать таблицу, поэтому я попробовал только это   -  person Austin Leung    schedule 24.05.2017
comment
может это не строка подключения?   -  person Austin Leung    schedule 24.05.2017
comment
Вроде один, но он должен быть в вашем посте, а не закопан в комментариях ;-)   -  person Mathieu Guindon    schedule 24.05.2017
comment
Мне жаль, что я новичок в программировании   -  person Austin Leung    schedule 24.05.2017
comment
Я думаю, у вас должна быть возможность запускать приложение VFP 6 в Windows 10. Очевидно, было бы лучше перенести его на VFP 9, который определенно работает в Windows 10. Но стоит протестировать, а не начинать с нуля.   -  person Tamar E. Granor    schedule 24.05.2017
comment
Поскольку выпуск foxpro 9 прекращен, я не могу использовать его в коммерческих целях из-за проблем с лицензией. Поэтому я не предпочитаю использовать vfp 9 вместо создания нового приложения.   -  person Austin Leung    schedule 25.05.2017
comment
Исполняемые файлы VFP не требуют лицензии для распространения, поэтому тот факт, что продукт больше не выпускается, не имеет значения, если по какой-либо причине вашим пользователям не требуется полная установка.   -  person Tamar E. Granor    schedule 26.05.2017


Ответы (2)


Используйте VFPOLEDB для подключения. С VFPOLEDB вы должны просто использовать OleDbConnection со строкой подключения, например:

new OleDbConnection("Provider=VFPOLEDB;Data Source=c:\your data folder")

Также проверьте Tom Brother's LinqToVFP, VFP EF Provider и другие на codeplex.

IMHO, использование Windows 10 - не повод переписывать приложение VFP в VB.Net. В любом случае, если вы хотите это сделать, то почему бы вам также не сменить серверную часть базы данных на что-то еще, например, postgreSQL, MySQL, SQL Server и т. Д.

person Cetin Basoz    schedule 25.05.2017
comment
во-первых, спасибо за ваш ответ. Извините за поздний вопрос, и я хотел бы задать вам несколько вопросов о моем кодировании. Я использую другой метод для подключения моего dbf, например: Dim ConnectionString As String = "Provider=vfpoloedb.1;Data Source= mypath\;Collating Sequence=machine" Dim dbconnect As New OleDb.OleDbConnection(ConnectionString) dbconnect.Open() Application.DoEvents(), но когда я хочу использовать мастер добавления нового источника данных, это тот же результат, о котором я говорю выше. Этот метод не подходит для таблицы foxpro? - person Austin Leung; 30.05.2017
comment
К сожалению, я не использую мастеров и поэтому не знаю. В основном я использую LinqToVFP (Tom Brothers - codeplex) и прямое кодирование без набора данных (OleDbconnecrtion, OleDbCommand). - person Cetin Basoz; 30.05.2017

Я нашел решение, в котором вы можете использовать код вместо мастера для подключения таблицы FoxPro, вот решение.

Сначала используйте строку подключения для подключения к таблице, затем установите DataAdapter и DataSet для таблицы. Наконец, заполните DataAdapter и поместите его в DataGridView.

Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim connectionString As String = "provider=vfpoledb.1;data source=your location"
    Dim myConnection As New System.Data.OleDb.OleDbConnection(connectionString)
    myConnection.Open()
    Dim dataAdapter As New OleDbDataAdapter("FoxPro SQL cmd", myConnection)
    Dim dataSet As DataSet = New DataSet

    dataAdapter.Fill(dataSet, "Q")
    DataGridView1.DataSource = dataSet.Tables("Q")
End Sub

Надеюсь, это поможет.

person Austin Leung    schedule 02.06.2017