visual C# DataTableが見えない

このQ&Aのポイント
  • visual C# 2017で自習中。データセットデザイナー上で作成したDataTableが表示されない問題。
  • MoneyDataSetのMoneyDataTableがDataGridViewに関連づけられない問題。
  • データセットデザイナー上ではMoneyDataTableが表示されているが、実際の画面では見えない。
回答を見る
  • ベストアンサー

visual C# DataTableが見えない

お世話になります。 「作って覚えるVisual C# 2017」で自習中です。visual studio community 15.8.0を使っています。p.384でデータセットデザイナー上で、DataTableを作成し、p.386でDataGridViewにこのDataTableを関連づけるくだりがあります。このステップで、「データソースの選択」→「他のデータソース」→「プロジェクトデータソース」→「MoneyDataSet」までは表示できるのですが、その下にあるはずの「MoneyDataTable」が見れません。データセットデザイナー上はMoneyDataTableはみれているのですが。。。

  • nagaon
  • お礼率68% (293/427)

質問者が選んだベストアンサー

  • ベストアンサー
  • unokwave
  • ベストアンサー率58% (966/1654)
回答No.1

出版元の秀和システムのサイトにあるサンプルソースをダウンロードしてみましたが、MoneyDataTableがあるのはmoneyDataTable何とかという定義に関係するところか、そのmoneyDataTable何とかとMoneyDataSetとの間で関連を持たせた後だけに見えます。

nagaon
質問者

お礼

C# は私にはむずかしすぎるようです。

関連するQ&A

  • DataTableの件数に関して

    フォーム上に”DataGridView”を貼り付け、そこへ1行ずつ、複数行データを入力するような 事を考えています。 厳密には、”DataGridView”のセルをダブルクリックした時に、他のDBから検索された 結果を貼り付ける(表示)ような事をしています。 その際に、”Datatable”と”DataGridView”をバインドし、ダブルクリックされたら”DataTable” へ追加し表示というような事をしていますが、1件目(1行目)をクリック⇒表示、2件目(2行目) クリック⇒表示という場合には正しく表示されますが、1件目(1行目)クリック⇒表示の後、再度 1行目をクリックして表示した場合、なぜか”DataTable”の件数が、追加もしていないのに 最初から2件となっていて、さらに処理が終わった後には、2件となっているはずが3件となって いて、さらに空白の行が追加されてしまっています。 どうしてもこの現象から脱する事ができず、助けて頂ければと思います。 “DataTable”への追加は、問題ないかとは思われますが、、、 ★ 記述内容 Dim data_row As DataRow = dtTable.NewRow() data_row("発注番号") = PIN_発注番号 data_row("発注日付") = KIN_発注日付 dtTable.Rows.Add(data_row) DataGridView1.DataSource = dtSet.Tables(0) 教えて下さい。 よろしくお願いします。

  • DataGridViewで行選択して、対応するDataTableの行を得るには?

    いつもお世話になっております。VB2005環境です。 DataGridViewの行を選択したときに、そのソースであるDataTableの同じ行のデータを参照するには、どうしたらいいでしょうか。DataTableのデータをまるごとDataGridViewに表示しているわけではないので、必要に応じて直接DataTableから取得したいです。とても初歩的な質問だと思うのですが・・・。 DataGridView1.DataSource = DataTable  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ Dim r As Integer = DataGridView1.CurrentCell.RowIndex Dim str As String str = DataTable.Rows(r)("項目名") MsgBox(str)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ このように行インデックスを取得してやってみたのですが、これだとDataGridView上でソートすると行番号が変わってしまい、DataTable側の対応する行のデータが得られません。 もう少し詳しく現状を書くと、まずCSVファイルからデータをロードして、DataTableに渡しています。そして、その内容をDataGridViewに表示しているのですが、表示する内容はデータテーブル通りの構造ではなく、表示する必要がある項目だけを選んで、1つずつカラムを追加してバインドいます。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ’自動で列を追加しないようにする DataGridView1.AutoGenerateColumns = False ’データソースを指定する DataGridView1.DataSource = DataTable ’1つ1つ順番などを変えながら列を追加していく Dim column1 As New DataGridViewTextBoxColumn() DataGridView1.Columns.Add(column1) column1.Name = "Date" column1.HeaderText = "日付" column1.DataPropertyName = "F4" Dim column2 As New DataGridViewTextBoxColumn() DataGridView1.Columns.Add(column1) column1.Name = "Locatoin" column1.HeaderText = "場所" column2.DataPropertyName = "F1" ・ ・ ・  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ こんな感じでなので、表示されていない列のデータについては、必要に応じて直接DataTableから取得したいと思います。アドバイスよろしくお願いいたします<(_ _)>

  • Visual C++ 5.0では出て来ないウィンドウ

    Visual C++ 5.0では出て来ないウィンドウ Visual C++ 6.0 Standard Editonの中古ソフトを買おうと思っていますが、 「ファイル」メニュー→「新規作成」項目→「新規作成ウィンドウ」→「プロジェクト」タブで、 「Win32 Application」又は「Win32 Dynamic-Link Library」を選択して「OK」ボタンを押した後に、 「Win32 Application-ステップ1/1」ウィンドウと「新規プロジェクト情報」ウィンドウ 又は 「Win32 Dynamic-Link Library-ステップ1/1」ウィンドウと「新規プロジェクト情報」ウィンドウ が出て来るかどうか教えて頂けませんか? プリコンパイル済みヘッダーファイルとプリコンパイル済みソースファイルが自動作成されるかどうかも教えて下さい。 Visual C++ 5.0を持っているのですがこれらのウィンドウが出て来ないしプリコンパイル済みヘッダーファイルとプリコンパイル済みソースファイルも自動作成されないので困っています。 書店で売っている書籍が殆どVer6.0対応なので初心者にはVer5.0対応やVer2008では分かりません。

  • c#によるdatasetからdatagridviewの操作

    C#を始めたばかりの初心者です。 今いろいろ最初からボタンをセットしたり徐々に進んでいるのですが、今datasetとdatagridviewの場所でつまずいています。 デザイン上でデータセットをセットしdatatableテーブル名(abc)をつけcolumnにa,b,c,d,eと5つ列を追加しました。 そしてdatagridviewを制作しデータソースの選択で上記で作ったdatasetを割り当てました。 そのあとが質問なのですが、datasetにa,b,c,d,eにデータをtextboxから5個入力し。datasetに追加できたら次々とdatagridviewに表示させていき、ある程度までたまったら選択した行のeを更新してみたいのですが。 インターネットを探しているとmdbなどアクセスなどとつなげてるのが多かったのですが、アクセスなどのソフトとつなげないとこの内容は無理だったりするのでしょうか。 Visual C#2005逆引き大全で勉強しているのですがもしよければプログラミング方法など教えていただけたら幸いです。

  • [C#] DataGridViewでコンボボックスでの変更がdataTableに反映されません

    DataGridViewへのコンボボックス利用で躓いております。 DataGridViewのAutoGenerateColumnsをfalseにし、dataGridView.DataSourceにデータベースから読み込んだデータテーブルを指定しています。 次にdataGridViewにDataGridViewComboBoxColumnを追加し、DataPropertyNameにコンボボックスに対応させたい データテーブルのCaptionを指定することで、データテーブルとコンボボックスを関連付けています。 実行後の表示は想定通りなのですが、コンボボックスでアイテムを選択するとdataGridView上では値が更新されて、データテーブルには変更が反映されていません。 ちなみにコンボボックスでは、ValueMemberとDisplayMemberを設定し、DataGridView上ではstring、 内部的にはlongでデータ管理を行いたいと思っています。 どうにも解決方法が見いだせないので、こちらに質問させていただきました。 ソースを貼りつけるのでご指摘をお願いします。 利用しているデータベース |ID|ペットID| |1 |1| |2 |1| |3 |3| 以下ソースでは上記データベースのデータテーブルをpdtとしています。 コンボボックスのデータテーブル作成 DataTable comboTable = new DataTable(); comboTable.Columns.Add("ID", typeof(long)); comboTable.Columns.Add("NAME", typeof(string)); string[,] rowDataArray =      {{"1", "犬"},      {"2", "猫"},      {"3", "魚"}}; for(i=0;i<rowDataArray.GetLength(0);i++) {    DataRow row = comboTable.NewRow();    row["ID"] = rowDataArray[i, 0];    row["NAME"] = rowDataArray[i, 1];    comboTable.Rows.Add(row); } comboTable.AcceptChanges(); //コンボボックスを作成しコンボボックステーブルをバインド DataGridViewComboBoxColumn cbc = new DataGridViewComboBoxColumn(); cbc.DataSource = comboTable; cbc.DisplayMember = "NAME"; cbc.ValueMember = "ID"; cbc.DataPropertyName = pdt.ペットIDColumn.Caption; cbc.DisplayStyleForCurrentCellOnly = true; //dataGridViewにデータテーブルをバインド dataGridView1.AutoGenerateColumns = false; dataGridView1.DataSource = pdt; dataGridView1.Columns.Add(cbc); これを実行すると |犬| |犬| |魚| とdataGridViewに表示され、コンボボックスでは、犬、猫、魚が選べます。 一行目において、コンボボックスから猫を選択するとdataGridViewは下記のようになるのですが |猫| |犬| |魚| この後ブレークよりデータテーブルとdataGridViewを見ると pdt[0][0] = 1 dataGridView1.Rows[0].Cells[0].Value = 2 となっており、dataGridViewの値は更新されているのに、データテーブルでは更新されていませんでした。 今まで、dataGridView上でダブルクリックし、値を直接書き換えていたらデータテーブルの値も更新されていたのですが、 コンボボックスを使うようにしたら更新されなくなりました。 皆様、解決方法を教えていただけますでしょうか。

  • Visual Studio 2010 のC#で…

    Visual Studio 2010 のC#でアプリケーションを作成しています。 エラーをゼロにして、デバッグしてみたところ、以下のメッセージが表示されました。 A project with an output type of class Library cannot be started directly In order to debug this project, add an executable project to this solution which references the library project. Set the executable project as the startup project. いろいろググってみたのですが、原因がわかりません。どうすればクリアできるでしょうか? 御教示お願いいたします。

  • .NET 内のコードへステップ実行する方法

    Visual Studio 2015 Community を利用しています。 Visual Studio 2015 Community を利用して .NET Framework 内部のコードへステップ実行できるようにしたいのですが、やり方がわかりません。 以下の URL に載っているようなことを 2015 でも可能にしたいのですが、2008 とは色々と設定が違うみたいでやり方がわかりません。 どこをどのように設定すればいいのでしょうか? Visual Studio 2008で見る.NET Frameworkのソースコード http://www.atmarkit.co.jp/fdotnet/insiderseye/20080222sourcecode/sourcecode.html

  • Visual Studio 2015ダウンロード

    Visual Studio 2015をダウンロードしたのですが、思っていたのと違って困っています。 Visual Studio 2015で検索し、たどり着いたサイトで vs_community_JPN__1535640253.1486971071.exeというモジュールをダウンロードし、 インストールしました。 「Blend for Visual Studio 2015」というのがインストールされました。 やりたいことは、VBでWindowsアプリを作って、インストーラでインストールです。 VSI_bundle.exeというのも別途インストールしました。 ところが、「Blend for Visual Studio 2015」というヤツがそもそも思っていたのと違うようで、 「新しいプロジェクト」を選択し、 Visual Basicのところを探しても「Windowsフォームアプリケーション」が存在しません。 下記の3つしかありません。 「WPFアプリケーション」 「Silverlightアプリケーション」 「Silverlightクラスライブラリ」 新規作成を一旦諦め、 Visual Studio 2013で作ったソースを開いてみたところ、それは動きました。 既存のモジュールは動くし変更できるけど、新規作成の方法が分からない。 既存のモジュールから、 Installer Projectsを呼び出そうとしても 「追加」「新しいプロジェクト」を選択しても、やっぱり上がってくる項目が少なくて、目当ての「Setup Project」が挙がってきません。 2015を一旦諦め、古いバージョンをダウンロードしました。 「Microsoft Visual Studio Express 2013 for Web Update 4」 https://www.microsoft.com/ja-jp/download/details.aspx?id=44912 から「wdexpress_full.exe」をダウンロードしてインストールしました。 Visual Studio Express 2013を起動してみると、 「ああ、コレコレ、これだった。」という感じです。 「Windowsフォームアプリケーション」も存在しました。 これで一応、なんとかなりますが、2015では同じことはできないのですか? Microsoft Visual Studio 2015 Installer Projects を利用してインストーラーを作成する https://www.ipentec.com/document/document.aspx?page=visual-studio-2015-create-installer-using-microsoft-visual-studio-2015-installer-projects このサイトでは、2015でやっているみたいですけど、この2015はまた違うヤツですか? vs_community_JPN__1535640253.1486971071.exeというモジュールが悪いのですか? 使い方が悪いのですか? それとも2015の無償版では無理なのですか? 「Blend for」ってどういう意味ですか? 以上、よろしくお願いします。 <ダウンロードした操作> ホーム > 製品情報 > Visual Studio 2015 https://www.microsoft.com/ja-jp/dev/products/visual-studio-2015.aspx  ↓ ダウンロード https://www.visualstudio.com/downloads/?wt.mc_id=o~msft~mscom~jpvs2015  ↓下記のモジュールをダウンロード vs_community_JPN__1535640253.1486971071.exe  ↓インストール Blend for Visual Studio 2015 <やりたかったことの例> Microsoft Visual Studio 2015 Installer Projects を利用してインストーラーを作成する https://www.ipentec.com/document/document.aspx?page=visual-studio-2015-create-installer-using-microsoft-visual-studio-2015-installer-projects

  • GridViewの一行を別フォームに移す方法

    カテゴリ違いだったら申し訳ありません。 C#勉強中の初心者です。 「フォーム1で作成したDataGridView1のデータの内の一行を選択し、選択した一行をフォーム2に表示する」 というプロジェクトを作成したいのですが、なかなかうまくいかず困っています。 検索や参考書などで調べたりしたのですがどうも上手くいかず...。 お力添えいただけないでしょうか...? よろしくお願いいたします。 ↓↓以下使用 Visual Studio 2017 Community Windows フォーム アプリケーション(.NET Framework) Visual C#

  • C# 「データが失なわれる可能性を防ぐため、…」

    Visual Studio 2008 C# での質問です。 プログラムを作りこんでいくうちに、ソリューション・エクスプローラからデザイナの表示をクリックすると、 「データが失なわれる可能性を防ぐため、デザイナの読み込み前に以下のエラーを解決する必要があります。」 「ファイル内にデザインできるクラスがないため、このファイルのデザイナを表示できませんでした。ファイルの以下のクラスがデザイナで見つかりました。CRsvCalForm --- 基本クラス 'foo.Common.AbstructFooForm' を読み込めませんでした。アセンブリが参照されているか、およびすべてのプロジェクトがビルドされているかを確認してください。」 と表示されます。 修正したコードのフォームだけでなく、今まで手をつけていないフォームも表示できなくなりました。 SVN から(修正前の)「CRsvCalForm.cs」「CRsvCalForm.design.cs」「CRsvCalForm.resx」をエクスポートして Visual Studio を立ち上げても一緒の現象です。 SVN を直接 Visual Studio で開くと、正常に動いています。 「データが失なわれる可能性を防ぐため、デザイナの読み込み前に以下のエラーを解決する必要があります」でぐぐって見たのですが、有効そうなページは見つかりませんでした。 どなたか解決方法を知ってみえる方、ご教示いただきますようお願いします。

専門家に質問してみよう