前提・実現したいこと
VisualBasicのDataGridViewのセルをダブルクリックするとDBにデータを登録するようにしているのですが、DataGridView外に配置しているボタンクリック時に同様のイベントを発生させたいです。
発生している問題・エラーメッセージ
同じコードをボタンクリックにペーストすると System.InvalidCastException: '型 'System.Windows.Forms.Button' のオブジェクトを型 'System.Windows.Forms.DataGridView' にキャストできません。'
該当のソースコード
VB
1セルダブルクリックのイベントです。こちらのコードをボタンクリックイベントにペーストすると上記のエラーが出ます。 2Dim dgv As DataGridView = DirectCast(sender, DataGridView) 3 Dim ODNOKBNN As String = CM0000.login_Pass 4 Dim ODNO As String = "" 5 Dim SGB As String = "" 6 Dim Syagai As String = "" 7 Dim MoveTime As String = "" 8 Dim SagyoPlace As String = "" 9 Dim StartTime As String = "" 10 Dim StopTime As String = "" 11 Dim BreakTime As String = "" 12 Dim Biko As String = "" 13 Dim Day As String = DateLabel.Text 14 15 If DataGridView1.Rows.Count = 0 Then 16 MessageBox.Show(msgE012, Text, MessageBoxButtons.OK, MessageBoxIcon.Error) 17 DataGridView1.Focus() 18 Else 19 For Each c As DataGridViewCell In DataGridView1.SelectedCells 20 ODNO = DataGridView1(0, c.RowIndex).Value 21 SGB = DataGridView1(2, c.RowIndex).Value 22 Syagai = DataGridView1(3, c.RowIndex).Value 23 MoveTime = DataGridView1(4, c.RowIndex).Value 24 SagyoPlace = DataGridView1(5, c.RowIndex).Value 25 StartTime = DataGridView1(6, c.RowIndex).Value 26 StopTime = DataGridView1(8, c.RowIndex).Value 27 BreakTime = DataGridView1(9, c.RowIndex).Value 28 Biko = DataGridView1(10, c.RowIndex).Value 29 Next 30 Dim T As TimeSpan = ToTimeSpan(StopTime) - ToTimeSpan(StartTime) - ToTimeSpan(MoveTime) - ToTimeSpan(BreakTime) 31 Dim SagyoTime As Double = T.TotalMinutes 32 Dim h As Double = SagyoTime \ 60 33 Dim m As Double = SagyoTime Mod 60 34 Dim hhmm As String = h.ToString() & ":" & m.ToString() 35 Dim result1 As String = EditTime(hhmm) 36 37 38 39 Dim query As String = "Insert into Test3 values (@ODNOKBNN,@ODNO,@SGB,@Syagai,@MoveTime,@SagyoPlace,@StartTime,@StopTime,@BreakTime,@SagyoTime,@Biko,@Day)" 40 Using con As SqlConnection = New SqlConnection("") 41 42 43 Using cmd As SqlCommand = New SqlCommand(query, con) 44 cmd.Parameters.AddWithValue("@ODNOKBNN", ODNOKBNN) 45 46 cmd.Parameters.AddWithValue("@ODNO", ODNO) 47 cmd.Parameters.AddWithValue("@SGB", SGB) 48 49 If Syagai = Nothing Then 50 cmd.Parameters.AddWithValue("@Syagai", "社内") 51 Else 52 cmd.Parameters.AddWithValue("@Syagai", Syagai) 53 End If 54 55 cmd.Parameters.AddWithValue("@MoveTime", MoveTime) 56 57 If SagyoPlace = Nothing Then 58 cmd.Parameters.AddWithValue("@SagyoPlace", "") 59 Else 60 cmd.Parameters.AddWithValue("@SagyoPlace", SagyoPlace) 61 End If 62 cmd.Parameters.AddWithValue("@StartTime", StartTime) 63 cmd.Parameters.AddWithValue("@StopTime", StopTime) 64 65 cmd.Parameters.AddWithValue("@BreakTime", BreakTime) 66 67 cmd.Parameters.AddWithValue("@SagyoTime", result1) 68 If Biko = Nothing Then 69 cmd.Parameters.AddWithValue("@Biko", "") 70 Else 71 cmd.Parameters.AddWithValue("@Biko", Biko) 72 End If 73 cmd.Parameters.AddWithValue("@Day", Day) 74 75 76 con.Open() 77 cmd.ExecuteNonQuery() 78 con.Close() 79 End Using 80 End Using 81 82 83 MessageBox.Show("登録完了", Me.Text) 84 End If 85 86 End Sub
補足情報(FW/ツールのバージョンなど)
Visual Studio2017,SQL Server
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/07/12 08:22