tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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には入れないで完全に別々に処理すればよいのではないかと
思います。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。