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

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

ただいまの
回答率

90.34%

  • C#

    7673questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • WPF

    734questions

    Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

  • CSV

    703questions

    CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

  • DataGrid

    57questions

    GUIの一種であり、データを表の形式でみることが可能です。

C# DataGridにCSVのデータを表示させたい

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 945
退会済みユーザー

退会済みユーザー

はじめまして。お世話になります。

現在C#の学習をしております。
WPFで、参照したcsvファイルの中身を
DataGridに表示するコードを作成しているのですが
実行して、「データ読込」ボタンを押下するも
エラーも発生せず、またDataGridに項目も表示されず
何も起こらない状況です。

コードは下記になります。

MainWindow.xaml

<Window x:Class="csvGet.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:csvGet"
        mc:Ignorable="d"
        Title="CSV取り込み" Height="400" Width="600" MinHeight="400" MinWidth="600">

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="2"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="2"/>
        </Grid.ColumnDefinitions>

        <Grid.RowDefinitions>
            <RowDefinition Height="2"/>
            <RowDefinition Height="22"/>
            <RowDefinition Height="2"/>
            <RowDefinition Height="22"/>
            <RowDefinition Height="2"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="2"/>
        </Grid.RowDefinitions>

        <Grid Grid.Column="1" Grid.Row="1">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="70"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="70"/>
            </Grid.ColumnDefinitions>

            <Label Grid.Column="0" Content="CSVファイル名" FontSize="10.5" Background="DarkGray"/>
            <TextBox Grid.Column="1" x:Name="tb" IsReadOnly="True"/>
            <Button Grid.Column="2" Content="参照" Click="Open_Click"/>
        </Grid>

        <Grid Grid.Column="1" Grid.Row="3">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="70"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>

            <Button Grid.Column="0" Content="データ読込" Click="Read_Click"/>
        </Grid>

        <Grid Grid.Column="1" Grid.Row="5">
            <DataGrid Name="dg"/>
        </Grid>

    </Grid>
</Window>

MainWindow.xaml.cs

using Microsoft.VisualBasic.FileIO;
using System;
using System.Data;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Forms;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Forms = System.Windows.Forms;

namespace csvGet
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        //参照ボタンの動作
        private void Open_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            //ファイルを選択するダイアログを開く
            ofd.Filter = "CSVファイル (*.csv)|*.csv";
            ofd.FilterIndex = 1;
            ofd.Title = "CSVファイルを選択";
            ofd.Multiselect = false;
            ofd.ValidateNames = true;

            if (ofd.ShowDialog() == Forms.DialogResult.OK)
            {
                tb.Text = ofd.FileName;
            }
        }

        //データ読込ボタンの動作
        private void Read_Click(object sender, EventArgs e)
        {
            string FileName = tb.Text;

            try
            {
                var parser = new TextFieldParser(FileName, System.Text.Encoding.GetEncoding("Shift_JIS"));
                //区切り文字、カンマ形式
                parser.TextFieldType = FieldType.Delimited;
                parser.SetDelimiters(",");

                //クローズする
                parser.Close();
            }

            //エラーが出た場合はポップアップを表示する
            catch (Exception Excep)
            {
                Forms.MessageBox.Show(Excep.Message);
            }
        }
    }
}

何かコードが不足しているのか、と考えましたが
・そもそも何が足りないのか
・コードのどの部分に、足りない部分を記述(追加)するのか
が全く分からず、この度ご質問させて頂きました。

ちなみに、C#は学習して1か月ほどで
コードはネットや書籍を参考に作成しましたが
文法などにも誤りがあるかもしれません...

解決方法について、ご教示いただければ幸いです。
宜しくお願い致します。

ツール等のバージョンなど

Windows10、VisualStudio 2017

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

0

自己解決しました。お手数かけました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/09/08 14:45

    ご回答ありがとうございます。
    すみません、何点かご質問させてください。

    (1)「Grid と GridView は別の物」とのことですが、
    コードのどの部分から読み取ったのでしょうか。
    (自身でも気づけるよう今後の参考にしたいです。)

    (2)修正しようと思うのですが、「ここの記述を直したほうが良い」など
    具体的な場所等ご教示頂きたいです。

    (3)上記(2)を修正し、問題(何も起こらない)は解決して
    正常に動作(「データ読込」ボタンを押下してCSVの中身が表示される)
    しますでしょうか。

    度々申し訳ございません。ご教示のほどお願い致します。

    キャンセル

  • 2017/09/08 14:57

    (1)
    XAMLではほとんど DataGrid に触れていない。
    コードビハインドでXAMLで定義したdgを使っていない。
    からそのように思いました。
    2,3は正直なところ一般的な書き方に達してないためとても解釈する気になりません。
    まず、サンプルを動かしてみて一般的な書き方を身に着けてください。

    キャンセル

同じタグがついた質問を見る

  • C#

    7673questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • WPF

    734questions

    Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

  • CSV

    703questions

    CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

  • DataGrid

    57questions

    GUIの一種であり、データを表の形式でみることが可能です。