- 題名: DataGridViewComboBoxColumnの使い方
- 日時: 2009/02/19 9:57:37
- ID: 24041
- この記事の返信元:
- (なし)
- この記事への返信:
- [24042] Re[1]: DataGridViewComboBoxColumnの使い方2009/02/19 11:10:52
- ツリーを表示
■No24041に返信(hoidoさんの記事) > sql &= "WHERE (dbo.tbl_SDロス入力.入力日 ='" & Now.ToString("d") & "') AND (tbl_SDロス入力.社員ID = 4) " 上記、Now.ToString("d") のような記述を行ってはいけません。 "2009/02/19" のような文字列が返されることを期待しているのかと 思いますが、OS 側の地域設定が「和暦」モードに設定されていた場合、 "21/02/19" という文字列になってしまうからです。 日付を文字列化するのであれば、 (案1) VB 側で、IFormatProvider を指定して文字列化する。 (案2) パラメータクエリにして日付型のまま渡し、SQL 側で文字列変換する。 などの方法を取った方が良いかと。 > どこにもコンボボックスが作成されません。 コードを実行していないので、憶測ですが: > Dim column As New DataGridViewComboBoxColumn() > With column > .Name = "SDロスID" > End With まず、ここでコンボボックス列を作成して、その後… > With Me.dgv_SDロス > .Columns.Insert(Me.dgv_SDロス.Columns(0).Index, column) > .Columns.Remove("SDロスID") > End With ここでそれを 0 列目に挿入しているのですが、その直後、 その Name を持つ列を Remove しているように見えます。 最後の Remove を除去したら、どうなりますか?
分類:[.NET]
いつもお世話になっております。
早速ですがDataGridViewComboBoxColumnの使い方について質問させてください。
http://dobon.net/vb/dotnet/datagridview/datagridviewcomboboxcolumn.html
を参考にさせていただき下記コードを作成実行したところエラーは出ないのですがどこにもコンボボックスが作成されません。
いろいろ検索はしたのですがなかなか答えにたどりつかず質問させていただくことにしました。
Dim Cn As SqlConnection = New SqlConnection(" ")
Dim SQLCm As SqlCommand = Cn.CreateCommand
Dim Adapter As SqlDataAdapter = New SqlDataAdapter(SQLCm)
Dim dt As DataTable = New DataTable
Dim sql As String = ""
sql = "SELECT tbl_SDロス.SDロスID,tbl_SDロス.SDロス名,tbl_SDロス入力.SDロス時間,tbl_SDロス入力.入力日, tbl_SDロス入力.社員ID, tbl_SDロス入力.職場ID "
sql &= "FROM tbl_SDロス LEFT OUTER JOIN "
sql &= "tbl_SDロス入力 ON tbl_SDロス.SDロスID = tbl_SDロス入力.SDロスID "
sql &= "WHERE (dbo.tbl_SDロス入力.入力日 ='" & Now.ToString("d") & "') AND (tbl_SDロス入力.社員ID = 4) "
sql &= "ORDER BY tbl_SDロス.SDロスID"
'DataGridViewComboBoxColumnを作成
Dim column As New DataGridViewComboBoxColumn()
Dim col_SQLCm As SqlCommand = Cn.CreateCommand
Dim col_Adapter As SqlDataAdapter = New SqlDataAdapter(col_SQLCm)
Dim column_dt As New DataTable
SQLCm.CommandText = "SELECT * FROM tbl_SDロス"
Adapter.Fill(column_dt)
With column
.DataSource = column_dt
.DataPropertyName = "SDロスID"
.DisplayStyleForCurrentCellOnly = True
.Name = "SDロスID"
End With
SQLCm.CommandText = sql
Adapter.Fill(dt)
Me.dgv_SDロス.DataSource = dt
With Me.dgv_SDロス
'"Week"列の代わりにComboBox列を表示する
.Columns.Insert(Me.dgv_SDロス.Columns(0).Index, column)
.Columns.Remove("SDロスID")
End With
すごい見当違いの事をしてるのかも知れませんが今の私の実力ではここまでで精一杯です。
申しわけありませんがご指導お願いいたします。