• ベストアンサー

datagridviewに表示させたい

はじめまして。最近VBをやりはじめ、行き詰まったのでお知恵を貸して下さい。 環境:VB2008,oracle11g dim view as string view = " select * from テーブル名" me.datagridview1.visible = true view と me行の間に、datagridview1に表示させるように定義したいのですが、 どうすれば表示される様になりますでしょうか?

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

  • ベストアンサー
回答No.1

こんばんは。 Oracleはないので、SQL Serverですが、うちではこれで正常に動きます。 Imports System.Data.SqlClient Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim tbl As New DataTable() Dim scn As New SqlConnection("Data Source=ICHHABEHUNGER\SQLEXPRESS;Integrated Security=True;Initial Catalog=SQL10") Dim sAdp As New SqlDataAdapter("SELECT * FROM dbo.Book", scn) sAdp.Fill(tbl) DataGridView1.DataSource = tbl End Sub End Class

VB201012
質問者

お礼

こんにちは。ichhabehungerさん ご助言ありがとうございます。 ichhabehungerさんの構文のヒントを基に作成したら、 datagridviewに表示されました。 とても助かりました。 今後とも宜しくお願い致します。

関連するQ&A

  • datagridview で昇順に

    vbを始めたばかりですが、 教えてください(2005) datagridview で大きい順にならべたいのですが、 Dim Table As DataTable = DirectCast(DataGridView2.DataSource, DataTable) Dim View As DataView = Table.DefaultView View.Sort = "A寸法" だと小さい順になってしまいます。 大きい順にするにはどうすればよいのでしょうか? よろしくお願いします。

  • DataGridViewで教えてください。

    DataGridViewで教えてください。 VB初心者ですが どうかよろしくお願いいたします。 VB2005で DataGirdView(dgv1)の始めの行を 他のDataGridView(dgv2)に追加したいのですが、 うまくいきません。 どうすればよいのでしょうか? すみませんが、 教えてください。 よろしくお願いします。 Dim Table As DataTable Dim MainTable As DataTable Dim row As DataRow Table = DirectCast(dgv1.DataSource, DataTable) MainTable = DirectCast(dgv2.DataSource, DataTable) row = MainTable.NewRow row = Table.Rows(0) MainTable.Rows.Add(row)

  • DataGridViewのセルに改行して表示

    VB2005、Access2003で開発しています。よろしくお願いします。 DataGridViewのセルに改行表示をしたいと思い、色々試したのですがうまくいきません。 データテーブル 日付  コード  数量 10/1    1     3 10/2    2     10 DataGridViewには、ひとつのセルに「コード」と「数量」のデータを並べて表示してるんですが、わかりにくいので、「数量」のデータを改行して表示したいと思っています。 色々と調べて試したのですが、うまくいきません。 WrapModeをTrueにしたら、改行できるみたいなことはわかったのですが、そのまま表示されてしまいます。 コードにSQL文を書いてDataGridViewに表示させているのですが、SQL文に何か足さなくてはならないのでしょうか? テーブル1.コード&'('&テーブル1.数量&')',''))As … と現在は()に数量を表示させてるんですが、セルに「1(3)」と表示されてしまいます。 どなたか教えてください。よろしくお願いします。

  • DataGridViewの再表示方法

    VB2005、SQLServer2005環境です。 FormA、FormBの2つのフォームがあり、FormAはDataGridViewでデータを表示し、 FormBはFormAで選択されたデータを呼び出し修正処理を行っています。 質問は、FormBでデータを登録し、FormBを閉じたタイミングで、 FormAのDataGridViewを再描画して最新のデータを表示したいのですが、うまくいきません。 <FormAで記述しているCD> Private Sub BTN_Data表示ボタン_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BTN_Data表示ボタン.Click Dim strsql As String ' レコードを取得し、データグリッドに表示する '---DB接続 '---SQL文を作成して実行する strsql = "SELECT コード, 氏名 FROM TBLA ORDER BY コード 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, "TBLA") '---DataSet を DataGridView control と連結 dgrSyain.DataSource = ds dgrSyain.DataMember = "TBLA" '---DB切断 Call Disconnect() End Sub <FormBで記述しているCD> Private Sub BTN_更新_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTN_更新.Click '---FormBの内容を更新する処理----- Me.Close() End Sub 上記の、FormBが閉じる時のイベントで、ResetBindingsを使えばいいのかと思いましたが どこにどう記述すればよいかわかりませんでした。 どうすれば再描画できるでしょうか? ご教授ください。

  • DataGridViewに配列の値を表示したい

    VB2008でプログラミングをしています。(超初心者です) タイトルどおり、DataGridViewに一次元配列の値を表示したいと思っています。 最初は、以下のとおりにプログラムを書いてみたのですが、 表示されるのは各要素の長さでした。 dim array() as string = {"data1","data2","data3"} DataGridView1.DataSource = array どのようにすれば、要素の値が表示されるのでしょうか? 出来れば{"data1","data2","data3"}のように、 各要素を書き出さない方法が知りたいです。 (要素数が不確定のため) よろしくお願いいたします。

  • DataGridViewに画像を表示する方法

    言語:Microsoft Visual Studio 2008 データベース:SQL Server 2005 非接続型のデータアクセスです。 現在,上記環境で.netを勉強し始めたところです。 そこでDataGridViewに画像を表示するプログラムを作成したいのですが、うまくいきません。 色々調べたのですが思うようにいかないので,アドバイスをいただければと思います。 <テーブル> ID  画像 1  C\aaa.jpg 2  C\bbb.jpg 3  C\ccc.jpg <画像がない時に表示する画像> C\null.gif 自作したコードは下記の通りです。でもこれだと"null.gif"がセルに表示されるだけで、データ毎に 持っている画像を表示できません。コーディングがそうなので仕方がないのですが… レコード毎に画像を表示する方法を教えて下さい。 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 = "テーブル"   '****************************** 'DataGridViewの列に画像を表示する   '******************************   Dim ImageColumn As New DataGridViewImageColumn()   ImageColumn.Name = "Image"   ImageColumn.ValuesAreIcons = False   ImageColumn.Image = New Bitmap("C\null.gif")   ImageColumn.ImageLayout = DataGridViewImageCellLayout.Zoom   ImageColumn.Description = "イメージ"   dgrview.Columns.Add(ImageColumn)   Call Disconnect() '---DB切断 End Sub

  • DataGridView 複数選択で行番号の取得

    Visual Basic 2008 を使っています。 DataGridViewで複数の行を選択したとき、それぞれが何行目なのかを取得するにはどうしたらいいでしょうか? 具体的には、複数選択されている行の0列目の値をテキストボックスに表示するという動作を行いたいです。 自分で書いたコードをペーストしておきます。 Dim count As Integer = Me.DataGridView1.SelectedRows.Count For count = 0 To count - 1 Dim test As String test = Me.DataGridView1.Rows(?何行目か).Cells(0).Value Me.TextBox4.Text = test & "が選択されています。" & vbCrLf & zenkai Dim zenkai As String = Me.TextBox1.Text Next

  • Datagridviewのコンボボックスにつきまして

    vb2005です。 DataGridViewコントロールのデータセットにデータベースのテーブルをセットしています。 そのDataGridViewの1列目にコンボボックスを設定し、 そのコンボボックスのデータセットにも別のテーブルをセットしたいのです。 Dim dAdp As OleDb.OleDbDataAdapter Dim dSet As New DataSet Dim cn As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\DB.mdb;") dAdp = New OleDb.OleDbDataAdapter("SELECT * FROM 商品", cn) dAdp.Fill(dSet, "t_商品") DataGridView1.DataSource = dSet.Tables("t_商品") dAdp = New OleDb.OleDbDataAdapter("SELECT * FROM 品種", cn) dAdp.Fill(dSet, "t_品種") Dim col As System.Windows.Forms.DataGridViewComboBoxColumn = DataGridView1.Columns(1) ・・・・★ col.DataSource = dtSet.Tables("t_品種") col.DisplayMember = "品種名" col.ValueMember = "品種コード" 上記のように記述しているのですが、★の部分で、下記のエラーになります。 型 'System.Windows.Forms.DataGridViewTextBoxColumn' のオブジェクトを型 'System.Windows.Forms.DataGridViewComboBoxColumn' にキャストできません データソースを指定したDataGridViewの列にはコンボボックス等の設定は 出来ないのでしょうか?

  • VB DataGridView 行削除

    Visualbasic 2010 を利用してWindowsFormアプリケーションを開発しております。 データベースはORACLE11を利用しております。 VB側よりOracleDataAdapterを利用してDatatableにORACLEのSELECT結果を格納しています。 DataGridViewには上記のDataTableをDataSourceとして割り当てております。 このDataGridViewに並び替え機能を組み込んでおります。 ※DataViewのSortを利用して並び替えを実現しております。 この後にDataGridViewの行削除を行うと以下の例外が発生します。 一意制約(XXX.PKY_テストデータ)に反しています Oracle.DataAccess.Client.OracleException これはDataTableをSortしたためOracleDataAdapterと一致しなくなったことが原因ではないかと推測しております。 DataGridViewの並び替えを行っても正常に行削除を行いDataTableにも反映する方法が分る方がいらっしゃいましたらご教授頂けないでしょうか。 VBソース抜粋 ・データ抽出 '/ SQLをOracleで実行した結果をデータアダプタに格納 Dadp5 = New OracleDataAdapter("SELECT * from テストデータ", CONFIG.Database) Dadp5.Fill(dt_test) Me.DataGridView_TEST.DataSource = dt_test ・並び替え(降順) Dim dv = New DataView(dt_test) dv.Sort = "テストコード DESC" dt_test = dv.ToTable Me.H_DataGridView_test.DataSource = dt_test ・行削除 Dim scBuilder As New OracleCommandBuilder(Dadp5) '/ データグリッドビューの編集内容をデータベースへ反映 '/ 生成されたSQLを実行する Dadp5.Update(dt_test) ※ここで例外が発生致します。 お手数おかけ致しますが宜しくお願い致します。 以上です。

  • DataGridViewに関して

    開発:Visual Basic 2008 考え方の質問になってしまうかもしれませんが教えて下さい。 Datagridviewを用いて、データの入力をさせたいと考えています。 但し、入力だけでなく画面にある表示ボタンを押した際には、テーブルに格納されている データを検索しに行き、その内容を表示させたいと考えています。 Datagridviewはフォームに貼り付け、各項目を一つずつ作成してあります。 しかし、この場合、以下のような記述をすると(そもそも記述が違うかと思われますが・・・)、 もともと作成してある項目(列)にデータがセットされず、新規で列を作ってしまいます。 《記述内容》 '変数の宣言 Dim dtSet As DataSet = New DataSet("PRODUCTS") Dim dtTable As DataTable 'データセットにテーブルを追加する dtTable = dtSet.Tables.Add("A_TBL") 'テーブルにフィールドを追加する '.Add("フィールド名", フィールドの型)で追加します dtTable.Columns.Add("AAA", Type.GetType("System.String")) Dim data_row As DataRow = dtTable.NewRow() data_row("AAA") = PIN_AAA dtTable.Rows.Add(data_row) 'DataGridにデータを表示する G_BBB.DataSource = dtSet.Tables(0) そもそもDatagridviewを用いて、入力や表示を行うにはどのような形にするのが 良いのでしょうか? Datasetとか使う? 教えて頂きたいと思います。 よろしくお願いします。

専門家に質問してみよう