質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.87%

  • VB.NET

    852questions

    Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

  • SQLite

    561questions

    SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

VB.netでCSVを読み込んでSQLiteにInsertしたい

受付中

回答 2

投稿

  • 評価
  • クリップ 1
  • VIEW 440

feeder

score 2

いつもお世話になっております。

今回、VB.netでCSVを読み込んでSQLiteのDataBaseにInsertしたいのですが
参考資料がC#ばかりであまりよくわかりませんでした。

エラーが出たとかではなく突っかかりがほしく投稿させて頂きました。
参考サイト等でも大変助かります、どうか宜しくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • YAmaGNZ

    2017/12/30 16:23

    ご自身が何が分かっていないのか整理しましょう。 この質問内容ですと、単純に分けても「CSVを読み込む」と「DBへInsertする」となります。これのどちらが分からないのでしょうか?

    キャンセル

  • feeder

    2017/12/30 16:36

    CSVを読み込むことに関しては、エラーが出ていて止まっていますが自己解決できる反いです。後者に関しては、見当もつかない状態です。

    キャンセル

回答 2

0

SQLを実行する時はSQLiteCommandクラスを使いましょう。

' SQLiteConnectionクラスを_conとして定義し、接続されているとします
Dim command As SQLiteCommand = _con.CreateCommand()

command.CommandText = "実行するSQL"
command.ExecuteNonQuery()


といった感じでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

csvの読み込みはMicrosoft.VisualBasic.FileIO.TextFieldParserを使う
Microsoft.VisualBasic.FileIO.TextFieldParser

なんとなく書いてみただけなので参考になるかわかりませんが、あとちゃんと動くかわからないけど、csvをいい感じにIteratorで返してくれるやつ
parserの設定は要件にあわせて適宜指定してください

Public Iterator Function Context(path As String, Optional encoding As System.Text.Encoding = Nothing) As IEnumerable(Of String())

  Try

    Using stream As System.IO.FileStream = New System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read)

      Using parser As FileIO.TextFieldParser = New FileIO.TextFieldParser(stream, IIf(encoding Is Nothing, System.Text.Encoding.UTF8, encoding), True, False)
        With parser
          .TextFieldType = FileIO.FieldType.Delimited
          .Delimiters = New String() {","}
          .HasFieldsEnclosedInQuotes = False
          .TrimWhiteSpace = False
        End With

        While (parser.EndOfData = False)

          Yield parser.ReadFields

        End While

      End Using

    End Using

      Catch ex As Exception
    
    End Try

End Function


SQLiteはSystem.Date.SQLiteをnugetから取ってきて使う
System.Data.SQLite
こっちはさわりだけですけどsqllite.dbというSQLiteのデータベースにDummyというテーブル、Key,Valueというフィールドがあったとして

Using db As New System.Data.SQLite.SQLiteConnection("Data Source=sqllite.db")
  db.Open()
  Using SqlCommand As System.Data.SQLite.SQLiteCommand = con.CreateCommand()
    SqlCommand.CommandText = "INSERT INTO Dummy (Key, Value) VALUES(1, 'teratail')"
    SqlCommand.ExecuteNonQuery()
  End Using
End Using


サンプルなので直書きしているけど、パラメータクエリで次々値を渡して実行してあげる
INSERT INTO Dummy (Key, Value) VALUES(@Key, @Value)

パラメータクエリは以下を参考に
SqlCommand.Parameters

であとはひたすら頑張ってコードを書けばいい感じになるかと..

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.87%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • VB.NET

    852questions

    Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

  • SQLite

    561questions

    SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。