タイトル | : Re^2: DataGridでカラムスタイルの設定をすると最後の項目が表示されなくなる |
記事No | : 7065 |
投稿日 | : 2008/02/22(Fri) 15:31 |
投稿者 | : K |
いつもお世話になっています。 再現ソースができました。このソースで再現しました。 この再現ソースを作りながらも、色々と調べてみました。 1.データを呼び出しているのはクエリ(クエリAとします)からで、 1つのクエリ(クエリBとします)と3つのテーブルの組合わせです。 クエリBでは、4つのテーブルの組み合わせです。 この場合、42個目の項目がDataGridに表示されません。 2.クエリAからの呼び出しの場合いくつか項目を減らしても、最後の項目が DataGridに表示されない。 3.データを呼び出す所を1つのテーブルだけにすると、50項目でも表示されます。
以上の事からプログラムの問題ではなく、データベース上で作成したクエリに問題が あるのでは・・・?と考えています。 そうなれば、質問する場所を替えないといけませんね。 一応データベースにあるクエリのデータを見ると、表示されない項目(42個目)にもデータは入っています。
Public Class Form1 Inherits System.Windows.Forms.Form
Public 項目() As String = { 42項目 }
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim oleCn As New OleDb.OleDbConnection Dim oleCmd As OleDb.OleDbCommand Dim oleReader As OleDb.OleDbDataReader Dim dAdp1 As OleDb.OleDbDataAdapter Dim dSet1 As DataSet = New DataSet("表示データ") Dim SQLCmd, DataBase As String Dim n As Integer Dim tblStyle1 As New DataGridTableStyle Dim clmStyle1(42) As DataGridTextBoxColumn
'データベースの格納場所 DataBase = "XXX.mdb"
'データベース定義 oleCn.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & DataBase & ";" & _ "Persist Security info=False"
'データベースオープン oleCn.Open()
'データを検索 SQLCmd = "select " & 項目(0) For n = 1 To 41 SQLCmd = SQLCmd & ", " & 項目(n) Next SQLCmd = SQLCmd & " from クエリ" dAdp1 = New OleDb.OleDbDataAdapter(SQLCmd, oleCn) dAdp1.Fill(dSet1, "表示データ") tblStyle1.MappingName = "表示データ" For n = 0 To 41 clmStyle1(n) = New DataGridTextBoxColumn clmStyle1(n).MappingName = 項目(n) clmStyle1(n).HeaderText = 項目(n) clmStyle1(n).NullText = "" '金額表示項目 If n = 22 Or n = 23 Or n = 24 Then clmStyle1(n).Format = "c" clmStyle1(n).Alignment = HorizontalAlignment.Right End If 'ユーザに入力して欲しくない項目を読込専用にする If n < 6 Or n > 11 Then clmStyle1(n).ReadOnly = True End If tblStyle1.GridColumnStyles.Add(clmStyle1(n)) Next
DataGrid1.TableStyles.Add(tblStyle1) DataGrid1.SetDataBinding(dSet1, "表示データ") End Sub End Class
|