Boas pessoal,
Alguém me podia dizer como faço o if ternário neste código? Dá-me este erro “A conversão da cadeia “” para o tipo ‘Date’ não é válida.”
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.QuartosTableAdapter.Insert(TxtNumerodoQuarto.Text, TxtCheckIn.Text, TxtCheckOut.Text, TxtCheckOutTardio.Text, TxtIDReservas.Text)
Me.QuartosTableAdapter.Update(Ho_GestDataSet.Quartos)
MsgBox(“Guardado com Sucesso!”)
Me.QuartosTableAdapter.Fill(Me.Ho_GestDataSet.Quartos)
tem um if no vb que é equivalente ao (varString.equals("S") ? true : false) do java, c e mais algumas lps q usam essa sintaxe, que é o iif do vb.
iif(varString,"S",true,false)
Pelo oq eu entendi do seu problema, vc tem que tratar uma data certo? Se eu não me engano, tem um “format” que trata data bem bacaninha, acho que é o “formatDate”, que seria equivalente ao “SimpleDateFormat”.
Se não for nada disso, tenta explicar melhor seu problema.
L
Lameira
Pois eu não estou a conseguir porque tem um erro que ele não reconhece a data,sabe me dizer como é que eu uso esse format date naquele código que enviei no primeiro post?
L
Lameira
Eu agora tentei pôr assim o código “Me.QuartosTableAdapter.Insert(TxtNumerodoQuarto.Text, If(TxtCheckIn.Text = “”, Nothing, TxtCheckIn.Text), If(TxtCheckOut.Text = “”, Nothing, TxtCheckOut.Text), If(TxtCheckOutTardio.Text = “”, Nothing, TxtCheckOutTardio.Text), If(TxtIDReservas.Text = “”, Nothing, TxtIDReservas.Text))”, mas também não deu nada
Lenin666
Vixi, não tenho o vb instalado mas tenta algo mais ou menos assim:
Fiz como você me disse mas agora dá-me este erro “A conversão da cadeia “” para o tipo ‘Integer’ não é válida.”
Lenin666
Algum desses campos ai deveria estar mandando um inteiro e vc tah passando string…
L
Lameira
Já fiz isto de forma mais completa e sem ser aldrabada,fiz o seguinte código:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim NumeroQuarto As Integer
Dim Checkin As DateTime
Dim CheckOut As DateTime
Dim CheckOutTardio As DateTime
Dim IdReservas As Integer
If TxtNumerodoQuarto.Text = “” Then NumeroQuarto = Nothing Else NumeroQuarto = TxtNumerodoQuarto.Text
If TxtCheckIn.Text = “” Then Checkin = Nothing Else Checkin = TxtCheckIn.Text
If TxtCheckOut.Text = “” Then CheckOut = Nothing Else CheckOut = TxtCheckOut.Text
If TxtCheckOutTardio.Text = “” Then CheckOutTardio = Nothing Else CheckOutTardio = TxtCheckOutTardio.Text
If TxtIDReservas.Text = “” Then IdReservas = Nothing Else IdReservas = TxtIDReservas.Text
Me.QuartosTableAdapter.Insert(NumeroQuarto, Checkin, CheckOut, CheckOutTardio, IdReservas)
Me.QuartosTableAdapter.Update(_Ho_GestDataSet.Quartos)
MsgBox(“Guardado com Sucesso!”)
Me.QuartosTableAdapter.Fill(Me._Ho_GestDataSet.Quartos)
EndSub
End Class
L
Lameira
Diga-me só uma coisa ali no Chechout tardio tenho que meter sempre valores ou no ID reservas,sabe como eu faço para deixar de ser obrigatório meter lá valores?
Lenin666
nossa, não sei se é a barreira do idioma, mas a explicação está bem complicada.
Olha, a regra de negócio quem define é você, se tem que ser obrigatório, quem define isso é você, e acredito que isso deva ser feito na view.
Agora se vc quiser tratar isso no código, acho q vc deveria inicializar suas variáveis com um valor default.
E se eu entendi a respeito de forçar a inserção de alguma informação, acho q vc deveria “validar” antes de inserir os dados na base.