mk2tk2 Ответов: 1

Как сохранить шейп-файл(.shp) в SQL server путем записи VB.NET код?


Привет!

Я ищу помощь о том, как я могу написать код в VB.NET чтобы я мог просмотреть шейп-файл со своего компьютера и сохранить его в базе данных SQL.
Я знаю, что есть готовые инструменты, подобные этому https://www.sharpgis.net/file.axd?file=SqlSpatialTools_build3759.zip[^] которые способны выполнить эту задачу, но
Я хочу сделать это вручную, написав некоторый код на Visual studio 2017 и Microsoft SQL server 2017

Приложение будет иметь две кнопки: одну кнопку для просмотра файла с компьютера и другую кнопку сохранения для сохранения шейп-файла в базу данных и окно OpenfileDialog.

Может ли кто-нибудь показать путь, как идти ...??

Спасибо.

Что я уже пробовал:

Private Sub BtnBrowse_Click(sender As System.Object, e As 
    System.EventArgs) Handles BtnBrowse.Click
    OpenFileDialog1.InitialDirectory = "E:\"
    OpenFileDialog1.Filter = "shapefile files (*.shp)|*.|All files 
    (*.*)|*.*"
    OpenFileDialog1.ShowDialog()
    txtFileName.Text = OpenFileDialog1.FileName

  End Sub

  Private Sub BtnSave_Click(sender As System.Object, e As 
   System.EventArgs) Handles BtnSave.Click
    Try
        'code to check if it is a shapefile



        'code to save shapefile in database 

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try

    End Sub

Richard MacCutchan

Вам просто нужно использовать предложение SQL INSERT и сохранить файл в виде большого двоичного объекта.

mk2tk2

Привет!

@Ричард MacCutchan

Можете ли вы руководить с помощью примера кода? Я все еще не могу понять, что ты сказал.
Спасибо

Richard MacCutchan

Не совсем, так как я понятия не имею о вашей базе данных или о том, какие у вас могут быть проблемы. Вам нужно более подробно подумать о том, какую проблему вы пытаетесь решить: как читать файлы тезисов, где вы хотите их хранить, является ли база данных правильным решением и т. д.

1 Ответов

Рейтинг:
2

OriginalGriff

Цитата:
'код для проверки, является ли это шейп-файл

Два варианта:
1) Основной - просто проверьте расширение. Метод Path.GetExtension (System.IO) | Microsoft Docs[^] вернет ".SHP" или ".TXT" в зависимости от обстоятельств. Но... почему вы разрешаете не ".SHP" файлы, если вам нужны только они?
2) дополнительно: прочитайте файл и проверьте его как допустимый шейп-файл. Сложно, но это может помочь: ГИС – Как проверить данные Шейп-файла в C# – Insights into Software Development[^], да, это в C#. При условии, что он находится в отдельной сборке, это не проблема, ваш VB-код может его использовать.
Цитата:
'код для сохранения шейп-файла в базе данных

Считайте файл в виде двоичных данных в массив байтов.
Создайте команду INSERT, подключенную к вашей БД, и передайте массив байтов непосредственно в качестве параметра.
Выполните команду для SQL.