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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

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

Visual Basic .NET

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

3457閲覧

Dapperから取得したデータをGrid表示できない。

yuki00079

総合スコア45

C#

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

Visual Basic .NET

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2017/04/18 08:09

編集2017/04/19 05:51

###前提・実現したいこと
タイトル通りですがDapperで取得したデータをDataGridViewへバインドできません。
正確には、DataSourceに入れることはできているのですが反映されません。
エラーが出ないのでどのコードが問題なのかわからず困っております。
DataGridViewは普段はDataTableから使用しているのですが、独自のListをバインディングした経験がなく、コントロールの使い方が誤っているのかがわかりません。
お力お貸しして頂けますと幸いです。

###発生している問題・エラーメッセージ
Gridに反映できない。(コントロール上に表示サれない。)

###該当のソースコード

Dim result As IEnumerable(Of Object) = Nothing Using connection = New SqlClient.SqlConnection("接続文字列") connection.Open() 'Testクラスにクエリで取得した結果をマップする。 result = connection.Query(Of Test)(SqlQuery.ToString, New With {パラメータ}) connection.Close() End Using Me.DataGridView1.DataSource = result.ToList()'エラーは出ないがGrid反映しない。 'BindingSourceでもうまくできない。 'Dim aaa = New BindingSource With {.DataSource = result.ToList()} 'Me.DataGridView1.DataSource = aaa

###試したこと
BindingSourceを使用したことがなかったのですが、いくつか見たサンプルは試しました。

###補足情報(言語/FW/ツール等のバージョンなど)
.net4.0 or 4.5

###追記
頂いたコメントを参考に修正を行ってみたところグリッド表示しました。
どうやら「Test」クラスが問題だったようです。Public変数宣言だったところをプロパティ宣言に変えたところ無事反映されました。
取得したListに大きな違いが見受けられないのですが何が問題だったのでしょうか。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hihijiji

2017/04/19 04:40

別の問題じゃないですか?Me.DataGridView1.DataSource = New List(Of String)(New String() {"hoge", "fuga", "piyo"}) としてみてください。
yuki00079

2017/04/19 04:48

返信ありがとうございます。確かに違う問題のようですね。DataSourceに上記を入れたところ「Length」というカラムと3行作られ、全てのセルに数字の「4」が入ります。何がおかしいのでしょうか。
guest

回答1

0

ベストアンサー

.net の原則として、クラスのフィールドは公開せずプロパティにしてください。

投稿2017/04/19 06:24

hihijiji

総合スコア4150

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問