タイトル : csvのデータを取得したい・・4徹目です(TT) 投稿日 : 2008/01/02(Wed) 18:43 投稿者 : ダダ
> > 順序だてて考えて見ましょう。 > > > > 1 CSVファイルのオープン > > 2 CSVファイルの読込 > > 3 (データがなくなるまで繰り返し) > > 読み込んだデータを分割 > > sql文字列の生成と実行 > > 次のデータを読み込み > > 4 CSVファイルのクローズ > > > > 基本はこんな感じですよ。 SQLの迷路に迷い込んだ初心者です。 レスが遅くて申し訳ありません。 先日じぇふんさんの助言を得て、コードを書きました。 このコードは、ウィンドウズモバイルで使うデータベース.sdfを XP上のcsvテキストを元に生成するアプリケーションを目指しています。 以下のコードでデバックしたところ cmd.excute.nonquery のところで、例外として排除されてしまいます。 いろいろ調べたのですが、この問題を解決できません。 何か良いアイディアはないでしょうか? 以下コードを書きます。 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'データベース重複防止 If System.IO.File.Exists("D:\User\ikejiri\testsdf.sdf") Then System.IO.File.Delete("D:\User\ikejiri\testsdf.sdf") End If ' ファイル名で指定したデータベースを作成します。拡張子は SDF です Dim eng As SqlCeEngine = New SqlCeEngine( _ "Data Source=D:\User\ikejiri\testsdf.sdf") eng.CreateDatabase() ' データベースを開きます。 Dim cn As SqlCeConnection = New SqlCeConnection( _ "Data Source=D:\User\ikejiri\testsdf.sdf") cn.Open() ' テーブルを開きます。 Dim sql As String = "CREATE TABLE csv " & _ "(単語 nvarchar(100) NOT NULL, " & _ "意味 nvarchar(100) NOT NULL," & _ "品詞 nvarchar(100) NOT NULL," & _ "例文 nvarchar(500) NOT NULL," & _ "例文意味 nvarchar(500) NOT NULL)" Dim cmd As SqlCeCommand = New SqlCeCommand(sql, cn) cmd.CommandType = CommandType.Text cmd.ExecuteNonQuery() 'CSVファイルを開いてSDFに挿入する '定義 Dim path As String = "D:\User\ikejiri\sampletext.txt" Dim textfile As IO.StreamReader Dim line As String Dim textarray() As String Dim text As string '開くときの例外排除 If IO.File.Exists(path) = False Then MessageBox.Show("パスミス", "結果") Exit Sub End If 'CSVファイル開く textfile = New IO.StreamReader(path, System.Text.Encoding.Default) Do While -1 'ラインを一行読む line = textfile.ReadLine() '読み終わったときの処理 If line Is Nothing Then MessageBox.Show("終わり", "結果") Exit Do End If '一行をカンマで分割’ textarray = line.Split(",") For Each text In textarray 'textarrayの一つ一つの分割textに対して sql = "INSERT INTO csv " & _ "(単語,意味,品詞,例文,例文意味) VALUES (text,text,text,text,text)" cmd.CommandText = sql cmd.ExecuteNonQuery() Next Loop 'データベース閉じる cn.Close() 'CSV閉じる textfile.Close() End Sub 長文申し訳ありません。。。 |