none
UPDATE RRS feed

  • Pergunta

  • Estou tentando fazer um UPDATE conforme abaixo, porem está aparecendo erro nos campos DateTime. O Que está errado?

    Nota: Os campos dentro de "IF" são opcionais.

    Public Function AlteraPS(ByVal conexao As String, ByVal ID_PS As String, ByVal Num_PS As String, _

    ByVal DTPedido As String, ByVal Servico As String, ByVal DTPrazo As String, ByVal Tecnico As String, _

    ByVal DTConclusao As String, ByVal Ref As String, ByVal Nota As String) As Boolean

    Dim conn As New SqlConnection

    Dim sql As String

    conn.ConnectionString = conexao

    Dim comd As SqlCommand = conn.CreateCommand()

    'Criando e definindo valor dos parametros

    comd.Parameters.Add("@ID_PS", SqlDbType.Int).Value = ID_PS

    comd.Parameters.Add("@Num_PS", SqlDbType.Int).Value = Num_PS

    comd.Parameters.Add("@Dat_Pedido", SqlDbType.DateTime).Value = DTPedido

    comd.Parameters.Add("@ID_Servico", SqlDbType.Int).Value = Servico

    comd.Parameters.Add("@Dat_Prazo", SqlDbType.DateTime).Value = DTPrazo

    comd.Parameters.Add("@ID_Tecnico", SqlDbType.Int).Value = Tecnico

    comd.Parameters.Add("@Dat_Conclusao", SqlDbType.DateTime).Value = DTConclusao

    comd.Parameters.Add("@Cod_Referencia", SqlDbType.VarChar).Value = Ref

    comd.Parameters.Add("@Des_Nota", SqlDbType.VarChar).Value = Nota

    ' Atualizando dados

    sql = "UPDATE T_PS SET Num_PS =@Num_PS,"

    sql = sql & " Dat_Pedido = @Dat_Pedido,"

    sql = sql & " ID_Servico = @ID_Servico,"

    sql = sql & " Dat_Prazo = @Dat_Prazo,"

    sql = sql & " ID_Tecnico = @ID_Tecnico,"

    If DTConclusao <> "" Then

    sql = sql & " Dat_Conclusao = @Dat_Conclusao,"

    End If

    sql = sql & " Cod_Referencia = @Cod_Referencia,"

    If Nota <> "" Then

    sql = sql & " Des_Nota = @Des_Nota"

    End If

    sql = sql & " WHERE ID_PS = @ID_PS"

    Try

    conn.Open()

    comd.CommandText = sql

    comd.ExecuteNonQuery()

    AlteraPS = True

    Catch exc As Exception

    AlteraPS = False

    MsgBox(exc.ToString & vbCrLf & vbCrLf & "Erro Numero : => " & Err.Number, MsgBoxStyle.Critical, "ERRO")

    Finally

    conn.Close()

    End Try

    Return AlteraPS

    End Function

    sexta-feira, 16 de fevereiro de 2007 17:25

Respostas

  • O problema estava na criação dos parametros, se não houver valor dava o erro. Resolvi criando um IF na criação dos parametros para os campos não obrigatórios.

    Se alguém tiver uma solução melhor para essa situação, peço postar.

    sexta-feira, 16 de fevereiro de 2007 17:57

Todas as Respostas

  • Qual erro?

    De qualquer forma altere o argumento da função para Date (DTPedido, DTPrazo e DTConclusao).

    sexta-feira, 16 de fevereiro de 2007 17:43
  • O problema estava na criação dos parametros, se não houver valor dava o erro. Resolvi criando um IF na criação dos parametros para os campos não obrigatórios.

    Se alguém tiver uma solução melhor para essa situação, peço postar.

    sexta-feira, 16 de fevereiro de 2007 17:57
  • A solução é essa mesmo, pois se você define um parâmetro na string, ele tem que ser preenchido com algum valor e adicionado na coleção.
    sexta-feira, 16 de fevereiro de 2007 18:15