• 締切済み

DataSetについて

下記のようなDataSetを使用した処理質問致します。 TableAdapterのデザイン時にてSELECTCommandで SELECT 'AA' AS 名前 FROM M_マスタ と、記述してDataGridView1に反映しようとしても実際にテーブルに入っているデータがそのまま表示されてしまいます。 このように固定の値を取得する方法はどのようにしたらよろしいのでしょうか?そもそもできないのでしょうか? Dim ds As New DataSet1 Dim Ta As New DataSet1TableAdapters.M_マスタTableAdapter 'テーブルアダプタを利用してデータを読み込む Ta.Fill(ds.M_マスタ) Me.DataGridView1.DataSource = ds Me.DataGridView1.DataMember = "M_マスタ"

みんなの回答

  • tkrn
  • ベストアンサー率53% (33/62)
回答No.1

テストしてみましたが普通に'AA'と固定表示されました。 もしかして、DataTableで設定しているColumのNameプロパティと「SELECT 'AA' AS 名前 FROM M_マスタ」の“名前”が合っていないか、 またはSELECTコマンド上で重複した名前になってませんか?

0000hiro
質問者

お礼

原因が分からなかったのでもう一度イチから作成したら うまく結果が返ってきました。 ご回答ありがとうございました。

関連するQ&A

  • DataSetの内容がDataGridViewに反映されない

    現在、VB2005でアプリケーションの開発をしているのですが DataSetの内容がDataGridViewに反映されなくて困っています。 表示させたいデータをデータセットにとってくるところは問題ないようで 1回目は上手く表示されるのですが、データセットの中身を変更して セットし直しても表示が変わりません。 以下がソースを抜き出したものになります。 Grid.DataSource = Nothing Grid.DataMember = Nothing Grid.DataSource = DataSet Grid.DataMember = "M_kbn" よろしくお願いします。

  • ADO.NETのDataSetのコピー

    ADO.NETでsdfファイルからmdbファイルへテーブル(TBL1)を移行させたいと思っています。 以下のようなコードでDataSetをコピーできないか試しましたが、移行できません。 sdf、mdbともテーブルのカラムの構造は同一です。 mdbの方にはレコードが空のテーブルが用意してあります。 何が間違っているのでしょうか?お教えいただけると助かります。 SDF Dim con As SqlCeConnection = DBUtility.GetConnection() con.Open() Dim strSQL As String strSQL = "select * from TBL1" Dim adapter As SqlCeDataAdapter = _ New SqlCeDataAdapter(New SqlCeCommand(strSQL, con)) con.Close() Dim ds1 As DataSet = New DataSet() adapter.Fill(ds1, "TBL1") Dim con2 As OleDbConnection = DBUtility.GetOLEConnection() con2.Open() 'MDB Dim strSQL2 As String strSQL2 = "select * from TBL1" Dim adapter2 As OleDbDataAdapter = _ New OleDbDataAdapter(New OleDbCommand(strSQL2, con2)) Dim ds2 As DataSet = New DataSet() ds2 = ds1.Copy Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(adapter2) adapter2.Update(ds2, "TBL1")

  • DataGridViewの列にコンボボックスを表示する方法

    言語:VB2005 データベース:SQLServer 非接続型のデータアクセスです。 .net勉強中の初心者です。件名の件について悩んでいますのでご教授お願いします。 http://dobon.net/vb/dotnet/datagridview/datagridviewcomboboxcolumn.html 上記HPを参考に勉強しています。 DataGridViewComboBoxColumnを使用する方法ではうまく表示できましたが、 DataSourceプロパティを使用する方法ではうまくできません。 (1)の処理を行うとまず、ID 所属コード 所属名称 がDataGridViewにバインドされます。 そこに(2)の処理を行い 所属名称を コンボボックスに変更したいのですが、所属名称の後に 列名が空白のコンボボックスが新たに追加作成されてしまいます。 そして下記のエラーが発生します。 System.FormatException: DataGridViewComboBoxCell の値が有効ではありません この既定のダイアログを置き換えるには、DataError イベントをハンドルしてください。 いったい何がおかしいのか???です。よろしくお願いします。 '**************************************** '(1)DataGridViewにデータをバインドする '**************************************** strsql = "SELECT ID, 所属コード, t1.名称 as 所属名称 FROM ATBL LEFT OUTER JOIN BTBL ON ATBL.所属 = BTBL.コード ORDER BY ID" Dim comm As SqlCommand = New SqlCommand(strsql, Con) Dim dataadapter As SqlDataAdapter = New SqlDataAdapter(comm) dataadapter.MissingSchemaAction = MissingSchemaAction.AddWithKey Dim ds As DataSet = New DataSet() dataadapter.Fill(ds, "テーブル") dgrview.DataSource = ds dgrview.DataMember = "テーブル" '---------------------------------------------------------------------- '(2)DataGridViewにComboBoxを設定する(DataSourceプロパティを使用した例) '---------------------------------------------------------------------- Dim DataSource As New DataTable("DataSource") DataSource.Columns.Add("Value", GetType(String)) DataSource.Columns.Add("code", GetType(Integer)) DataSource.Rows.Add("", 0) DataSource.Rows.Add("小学校", 1) DataSource.Rows.Add("中学校", 2) DataSource.Rows.Add("高校", 3) Dim column As New DataGridViewComboBoxColumn() column.DataPropertyName = "所属名称" column.DataSource = DataSource column.ValueMember = "code" column.DisplayMember = "Value" dgrview.Columns.Add(column)

  • DataSet ds = new DataSet();

    DataSet ds = new DataSet(); System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(); da.SelectCommand = cmd; da.Fill(ds); でデータを格納したときに、 重複データを省きたいのですが可能でしょうか? DataReader ならひとつひとつ格納していくので、 重複データを省くことができるのですが。

  • 【ASP.NET】DataSetをSqlDataSourceに組み込めますか?

    ASP.NET Visual Studio 2005で開発を行っています。 GridViewのページングの機能を使用するには、「SqlDataSource」や「ObjectDataSource」を使用しないと有効にならないと思いますが、データベースがDataSetになっています。 この状態から、GridViewにデータをバインドし、ページングを有効にさせるには、どうしたらよいでしょうか?? SqlDataSourceにDataSetを持っていくという方法が調べても、分かりませんでした。 以下が使用しているソースです。 これですと、ページングが有効にならず、エラーになる状態です。 ============================================= Dim dSet As Data.DataSet = New Data.DataSet("データ") Dim dTbl As Data.DataTable Dim dRow As Data.DataRow dTbl = dSet.Tables.Add("データ") dTbl.Columns.Add("aaa", Type.GetType("System.String")) dRow = dTbl.NewRow() dRow("aaa") = "bbb" dTbl.Rows.Add(dRow) Me.GridView1.DataSource = dTbl Me.GridView1.DataBind() ====================================== どうぞ、宜しくお願いします。

  • DataSetの使い方が分らず困っています

    VB2008とADO.NETを勉強中の初心者です。 DataSetに読み込んであるデ-タをクリアしたいと思ってるのですが、方法が分らず困っています。 最終目標のプログラムでは、製品のコ-ドを指定して、その製品を造るために必要な部品・材料を買うプログラムを作りたいと思っています。 そのための勉強として、Form1のTextBoxから製品コ-ドを入力して、"Seihinkousei"に登録してある部品・材料を読み込むプログラムを作成しました。 Dim cn As New OleDbConnection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\MAPICAS\MAPICAS-S.mdb" Dim da As OleDbDataAdapter 'DataAdapterの作成 da = New OleDbDataAdapter("SELECT * FROM Seihinkousei WHERE Se_Hinban = '" & TextBox1.Text & "'", cn) da.Fill(DataSet1, "Seihinkousei") DataGridView1.DataSource = DataSet1.Tables("Seihinkousei") 複数回、TextBoxから製品コ-ドを入力してDataGridViewに表示してみると、いままで読み込んでデ-タが、その都度すべて表示されてしまいます。 最終目標のプログラムでは、読込の処理をFunctionにして、どのPrivate SubからでもDataSetの内容を参照したいと思っています。 そのため、DataSetを使い、且つ前回読み込んで内容はクリアして、その都度指定した製品の部品・材料だけの情報にしたいと思っています。 ご教授よろしくお願いします。

  • DataGridViewで編集した内容をデータベースに反映したい

    言語:Microsoft Visual Studio 2008 データベース:SQL Server 2005 非接続型のデータアクセスです。 現在,上記環境で.netを勉強し始めたところです。 そこで簡単なプログラムからと思いDataGridViewを学習し始めたのですがすぐにつまずいてしまいました。 色々調べたのですが思うようにいかないので,アドバイスをいただければと思います。 やりたいことは (1)フォーム1のDataGridViewコントロールにデータソースをバインドしてデータを表示する。 (2)フォーム1の更新ボタン押下時に、DataGridViewで編集した内容をデータベースに反映する。 つまづいているのは(2)です。 http://japan.internet.com/developer/20070522/26.html を参考にしたのですが、どうコーディングすればよいかわかりません。 自作したコードは下記の通りです。 Private Sub frmDataGridViewTest_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load   Dim strsql As String   Call DBConnect() '---DB接続   strsql = "SELECT ID, 名称, 型式 FROM テーブル ORDER BY ID"   Dim comm As SqlCommand = New SqlCommand(strsql, Con)   Dim dataadapter As SqlDataAdapter = New SqlDataAdapter(comm)   dataadapter.MissingSchemaAction = MissingSchemaAction.AddWithKey   Dim ds As DataSet = New DataSet()   dataadapter.Fill(ds, "テーブル")   dgrview.DataSource = ds   dgrview.DataMember = "テーブル"   Call Disconnect() '---DB切断 End Sub Private Sub BTN_更新_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTN_更新.Click   '---ここに何か必要なのでしょうか?????     このままだとdataadapterとdsに宣言がないとエラーになります。   '---DataGridViewコントロールでの変更をデータベースに戻す   Dim sqlCmdBuilder As New SqlCommandBuilder(dataadapter)   sqlCmdBuilder.GetUpdateCommand()   dataadapter.Update(ds.Tables("テーブル"))   Call Disconnect() '---DB切断 End Sub

  • 【VB】データグリッドに読み込んだテーブルの変更を元のデータベースに反映させたい

    VB歴6ヶ月です。 VBのバージョンは2005です。 mdbから読み込んだデータベースをデータグリッドビューコントロールで表示しました。 CNには接続パスが入っていてmdbとの接続は確立しています。 データグリッドビューコントロールのオブジェクト名はDGVです。 読み込むテーブル名はt社員マスターです。 Private sub メンテナンス() Dim DS As DataSet = New DataSet("社員マスター") Dim SQL As String = "SELECT * FROM t社員マスター" Dim DA As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(SQL, CN) DA.Fill(DS, "社員マスター") Dim DV As DataView = New DataView(DS.Tables("社員マスター")) DGV.DataSource = DV End sub これでグリッドに読み込ますことはできたのですが、 読み込んだデータをグリッド上で変更したら元のデータベースにも反映したいのですが やり方がわかりません >< 具体的なコード、やり方を教えていただけたらありがたいです。

  • DataSetの複数テーブルをひとつのDataGridViewでまとめて出したい

    こんにちは、いつも参考にさせていただいています。 VS2005のC#で制作しているのですが、 ひとつのデータセットの中に3つのテーブルがあります。 そのテーブル全てをデータグリッドビューでだしたいのですが、 ひとつのテーブルしか上手に出ません。 3つのテーブルをひとつのグリッドビューに出す方法を教えてください。 現状は以下のコードで一つのテーブルだけ表示しています。 dv = new DataView(dataset.Tables["data"], "", "", DataViewRowState.CurrentRows); dataGridView1.DataSource = dv;

  • C#での記述方法に関して

    C#での記述方法に関して 簡単な質問で申し訳ありません。 以下のVBで記述されたソースをC#で同じ内容で記述したいのですが、 どのように記述すれば良いでしょうか・・・。 《内容》 Dim ta As New DataSet1TableAdapters.DataTable1TableAdapter() ta.Fill(DataSet11.DataTable1) 教えて下さい。

専門家に質問してみよう