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

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

新規登録して質問してみよう
ただいま回答率
85.48%
SQLite

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

VB.NET

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

Q&A

2回答

7055閲覧

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

feeder

総合スコア8

SQLite

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

VB.NET

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

0グッド

1クリップ

投稿2017/12/30 06:53

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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YAmaGNZ

2017/12/30 07:23

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

2017/12/30 07:36

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

回答2

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

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

投稿2017/12/31 03:34

dojikko

総合スコア3939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

VB.NET

1' SQLiteConnectionクラスを_conとして定義し、接続されているとします 2Dim command As SQLiteCommand = _con.CreateCommand() 3 4command.CommandText = "実行するSQL" 5command.ExecuteNonQuery()

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

投稿2017/12/30 09:21

YAmaGNZ

総合スコア10242

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問