はじめまして。お世話になります。
現在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
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。