vb. net создать базу данных sqlite - PullRequest
0 голосов
/ 12 июля 2020

Что я сделал до сих пор и чего, по моему мнению, не хватает или что НЕПРАВИЛЬНО в моих ограниченных знаниях В первую очередь я потратил неделю на чтение, прежде чем написать какой-либо из этого кода. Я создал БД на JavaFX и VB 6, но это VB. Net Project

Расширения Я загрузил и установил System.Data.SQLite.Core 1.0.113.1 Я вижу файлы dll в папке Debug, но не вижу SQLite.Core в моих установленных расширениях

Мы работаем над 64-разрядной версией W 7 с VS 2019 v 16.6.3

Мой код включает в себя две концепции, которые я пробовал, одна активна, другая закомментирована

Я пытаюсь назвать БД «Word.db», и все, что я получаю для имени в папке Debug, - «dbName», независимо от того, какую концепцию я использую Я предполагаю, что это место для БД позволит мне создать EXE-файл, который будет включать БД.

Мой makeDB Sub, когда приложение запускается во второй раз после создания БД, должен выполнить код под оператором Else. Он не выполняется. Поскольку в этом посте есть несколько проблем, ни один вопрос не исправит эту попытку создать и назвать БД.

Public Class frmStart

'Dim dbName As String = "Word.db"
Dim connStr As String = "Data Source={0};Version=3;"
Dim conn As SQLiteConnection
Dim cmd As SQLiteCommand
Private Sub frmStart_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'connectionString = String.Format(connectionString, configDb)
    'connStr = String.Format(connStr, dbName)
    connStr = String.Format(connStr, "Word.db")
    makeDB()
End Sub

Public Sub makeDB()
    'If Not My.Computer.FileSystem.FileExists(dbName) Then
    If Not My.Computer.FileSystem.FileExists("Word.db") Then
        Try
            conn = New SQLiteConnection("Data Source=dbName;Version=3;")
            conn.Open()
            tbMessage.Text = "Database Created"
        Catch ex As Exception
            tbMessage.Text = "Database NOT Created"
        End Try
        conn.Close()
    Else
        btnCreate.Visible = False
        btnToFormTwo.Visible = True
        tbMessage.Text = "Make Table"
    End If
End Sub<br/>

Да, есть Imports System.Data.SQLite Я заметил, что БД находится в папке x86, а не в папке x64

1 Ответ

1 голос
/ 12 июля 2020

Это потому, что

conn = New SQLiteConnection("Data Source=dbName;Version=3;")

dbName - это строка, а не строка (имя), которую вы объявили.

Вы должны использовать "Data Source=" & dbName & ";Version=3;" вместо того, что вы сделали ранее.

Public Class frmStart
Dim dbName As String = "Word.db"
Dim connStr As String = "Data Source={0};Version=3;"
Dim conn As SQLiteConnection
Dim cmd As SQLiteCommand

Private Sub frmStart_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    connStr = String.Format(connStr, dbName)
    makeDB()
End Sub

Public Sub makeDB()
    If Not My.Computer.FileSystem.FileExists(dbName) Then
        Try
            conn = New SQLiteConnection(connStr)
            conn.Open()
            'tbMessage.Text = "Database Created"
        Catch ex As Exception
            'tbMessage.Text = "Database NOT Created"
        End Try
        conn.Close()
    Else
        'btnCreate.Visible = False
        'btnToFormTwo.Visible = True
        'tbMessage.Text = "Make Table"
    End If
End Sub
End Class

Кроме того, пакеты проекта и расширения Visual Studio - это две разные вещи, вы добавили в свой проект пакет sqlite, а не расширение к

...