Usuário com melhor resposta
Evitar conflito duplo em datagridview vb.net? (Tabela horarios)

Pergunta
-
Tenho uma tabela com varias colunas, mas as principais são Funcionario e Dia. Funcionário é o Y e o Dia é o X da questão.
Vamos lá; tenho um botão que adiciona uma linha de horário de entrada e saida de funcionários. Mas o que eu gostaria de fazer é que quando clicasse esse botão, ele fizesse uma verificação pra ver se eu já não adicionei a linha do dia daquele funcionário antes.
Esclareci pouco?
Vou tirar um print do q eu não quero q aconteça.
- Editado Smart Tech Softwares terça-feira, 28 de junho de 2016 14:03 To chapado e esqueci o print
Respostas
-
Boa tarde Smart Tech Softwares,
horaIni1 e horaFin1 são do tipo "ShortTimeString". Ao invés de usar "+" tente usar "&".
Atenciosamente.
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Marcado como Resposta Thales F Quintas quinta-feira, 30 de junho de 2016 20:33
Todas as Respostas
-
Bom dia Smart Tech Softwares,
Aqui há um exemplo completo de uma classe para evitar duplicidade em DGV.
Por gentileza, verifique se este exemplo se aplica ao seu caso.
Atenciosamente.
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
-
Olá Smart Tech Softwares,
Segue dois exemplos em VB.NET
Tente adapta-los ao seu caso, por gentileza.
Private Sub DataGridView1_CellValidating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles DataGridView1.CellValidating If DataGridView1.Columns(e.ColumnIndex).DataPropertyName = "DistinctCol" AndAlso e.FormattedValue.ToString() <> DataGridView1(e.ColumnIndex, e.RowIndex).Value.ToString() Then Dim dt As DataTable = CType(DataGridView1.DataSource, DataTable) Dim rows As DataRow() = dt.Select("Funcionario = " & e.FormattedValue) If rows.Length > 0 Then MessageBox.Show("This value is already used.") e.Cancel = True End If End If End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim dt As DataTable = CType(DataGridView1.DataSource, DataTable) Dim dv As New DataView(dt) Dim distinct As DataTable = dv.ToTable(True, New String() {"Funcionario"}) If distinct.Rows.Count <> dt.Rows.Count Then MessageBox.Show("There are duplicate values.") End If End Sub
Atenciosamente.Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Tentei o seguinte código:
Private Function Total() As Double For Each linhas As DataGridViewRow In dglista.Rows Dim horaIni1 As New TimeSpan(Date.Parse(linhas.Cells(4).Value).ToShortTimeString) Dim horaFin1 As New TimeSpan(Date.Parse(linhas.Cells(4).Value).ToShortTimeString) linhas.Cells(9).Value = horaIni1 + horaFin1 Next End Function Private Sub btnsomar_Click(sender As Object, e As EventArgs) Handles btnsomar.Click Total() End Sub
Porém me dá o seguinte erro:
Conversion from string "00:00" to type 'Long' is not valid.
Como converter o valor da cell que é 00:00 para "Long" nesse código?
-
Boa tarde Smart Tech Softwares,
horaIni1 e horaFin1 são do tipo "ShortTimeString". Ao invés de usar "+" tente usar "&".
Atenciosamente.
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Marcado como Resposta Thales F Quintas quinta-feira, 30 de junho de 2016 20:33