人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Visual Basic 2005で、データベース操作をしています。データセットの中にテーブルを作成しておき、テキストファイルに、同じ配列に、カンマで区切ったデータがあるとします。これをインポートする方法を、具体的コード記述でお願いします。

●質問者: kojiro_i619
●カテゴリ:コンピュータ
✍キーワード:Visual Basic インポート コード テキスト データ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● KirakiraHikaru
●60ポイント

先ほど答えようと思ってたんですが、

仕事のタイミングもあるので後回しにしてました。すみません。


データセット内にテーブルを作成しておくということなので、

ヘッダ付のCSVファイルであれば簡単に取り込めます。

1.CSVファイルを用意

NO,NAME
1,name1
2,name2
3,name3

2.データセットを読み込むクラスに下記を追加

Imports System.Data
Imports System.Data.OleDb

3.フォームに、表示確認用にDataGridViewを追加(確認の必要がなければ省略してください)

4.読み込みたいタイミングで下記の処理を実行

(「Const xlsPath,xlsFile」の値は環境に合わせて変更してください、

表示確認が必要ない場合はDataGridView1を含む行を削除)

 Const csvPath As String = "H:\My Documents\Visual Studio 2005\Projects\Sample\SampleIe\testFile\"
 Const csvFile As String = "test.csv"
 ' appropriate for your environment.
 Dim sConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" _
 & "Data Source=" & csvPath _
 & ";" & "Extended Properties='text;FMT=Delimited'"
 ' Create the connection object by using the preceding connection string.
 Dim objConn As New OleDbConnection(sConnectionString)
 ' Open connection with the database.
 objConn.Open()
 ' The code to follow uses a SQL SELECT command to display the data from the worksheet.
 ' Create new OleDbCommand to return data from worksheet.
 Dim objCmdSelect As New OleDbCommand("SELECT * FROM " & csvFile, objConn)
 ' Create new OleDbDataAdapter that is used to build a DataSet 
 ' based on the preceding SQL SELECT statement.
 Dim objAdapter1 As New OleDbDataAdapter()
 ' Pass the Select command to the adapter.
 objAdapter1.SelectCommand = objCmdSelect
 ' Create new DataSet to hold information from the worksheet.
 Dim objDataset1 As New DataSet()
 Dim objTable As DataTable
 Dim Col As DataColumn
 objDataset1 = New DataSet("Data")
 objTable = New DataTable("Table")
 Col = New DataColumn("NO")
 Col.DataType = Type.GetType("System.Int32")
 objTable.Columns.Add(Col)
 Col = New DataColumn("NAME")
 Col.DataType = Type.GetType("System.String")
 objTable.Columns.Add(Col)
 objDataset1.Tables.Add(objTable)
 ' Fill the DataSet with the information from the worksheet.
 objAdapter1.Fill(objDataset1.Tables(0))
 ' Build a table from the original data.
 DataGridView1.DataSource = objDataset1.Tables(0).DefaultView
 ' Clean up objects.
 objConn.Close()

用意したデータセットのテーブルでなく、読み込み時に自動作成するのであれば、

Extended PropertiesにHDR=NOを追加し、

objAdapter1.Fill(objDataset1.Tables(0))をobjAdapter1.Fill(objDataset1, "csvData")

としてやれば簡単に読み込めます。

また、自分でCSVファイルを読み込んでデータセットに行を追加していくループにしても可能です。

http://www.hatena.ne.jp/

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ