タイトル : Re^5: 文字が表示できない。 投稿日 : 2016/08/17(Wed) 14:30 投稿者 : まりもん
調べ方は書かれていたように、Column.DataTypeで調べました。 >ちなみに下記プログラムのように★部分を追記して >1列目、2列目をstring型にしてからデータテーブルにCSVファイルを読み込んだつもりなのですが、 >やはり表示されない状態でした。データを格納しているタイミングがわるいのか?良くわかりませんでした。 >先ほど記述したメッセージボックスのやつでデータ型を確認したらSTRING型だったんですがね。 もし、 ★ TB.Columns.Add("項目", Type.GetType("System.String")) ★ TB.Columns.Add("値", Type.GetType("System.String")) の後に Using cn As New System.Data.OleDb.OleDbConnection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FolderPath & ";Extended Properties=""Text;HDR=YES;IMEX=1;FMT=Delimited""" Using da As System.Data.OleDb.OleDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM " & csvFileName, cn) da.Fill(ds, "Table1") End Using End Using を実行されたのであれば、ds.Tables(1)が出来ていたりしませんかね? 実現されたいことを実現するには、まずファイルフォーマットを決定すること そして、決定したファイルフォーマット通りに読み込むようにすること。 例)1行目は現場名 2行目は場所 3行目は試験者 4行目は日付 5行目は試験体No 6行目は空白行 7行目以降はChartに表示するデータ Try Dim ReadLines As Integer = 0 Using sr As New System.IO.StreamReader(TextBox1.Text, System.Text.Encoding.Default) 'ファイルの最後までループ Do Until sr.Peek() = -1 Dim temp() As String temp = Split(sr.ReadLine(), ",") ReadLines += 1 '読み込んだ行数をカウント Select Case ReadLines Case 1 '1行目 現場名 Genba = temp(1) Case 2 '2行目 場所 Basyo = temp(1) Case 3 '3行目 試験者 Case 4 '4行目 日付 Case 5 '5行目 試験体No Case 6 '6行目 空白行 Case Else '7行目以降 TB.Rows.Add(Integer.Parse(temp(0)), _ Single.Parse(temp(1)), _ Single.Parse(temp(2)), _ Date.Parse(temp(3)), _ Integer.Parse(temp(4))) Loop End Using Chart1.DataSource = ds ・ ・ ・ Catch ex As Exception MessageBox.Show(ex.Message) End Try のような感じで現場名等の部分はDataTableには入れないで完全に別々に処理すればよいのではないかと 思います。 |