1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Specified cast is not valid. c#

Discussão em 'Web Development' iniciada por alfinete, 17 de Janeiro de 2008. (Respostas: 2; Visualizações: 2027)

  1. alfinete

    alfinete Power Member

    tenho uma store procedure de insersão de dados numa tabela que é a seguinte

    Código:
    
    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go
    
    
    -- =============================================
    -- Author:        <Author,,Name>
    -- Create date: <Create Date,,>
    -- Description:    <Description,,>
    -- =============================================
    ALTER PROCEDURE [dbo].[inserir_aluguer]
    
    @Id_Cliente  int,
    @Id_Filme int,
    @Id_Funcionario int,
    @Dataal datetime,
    @Estado int,
    @Tarifa varchar(50)
    
    
    AS
    BEGIN
    
    insert into dbo.TabAluger
    (IdCliente,IdFilme,IdFuncionario,Data,Estado,Tarifa)
     values(@Id_Cliente,@Id_Filme,@Id_Funcionario,@DataAl,@Estado,@Tarifa )
    
    END
    
    
    tenho este metodo de insersão da store chamando a mesma na classe dados

    Código:
    
     public bool grava_aluguer(string[] dados)
            {
                dbm = new DAL.DBManager();
                bool resul = false;
                
    
                dbm.connection_string = ligacaovideo;
                dbm.Open();
                dbm.commType = CommandType.StoredProcedure;
                dbm.commText = "inserir_aluguer";
                dbm.CreateParameter(6);
                dbm.AddParameter(0, "@Id_Cliente", dados[0], ParameterDirection.Input);
                dbm.AddParameter(1, "@Id_Filme", dados[1], ParameterDirection.Input);
                dbm.AddParameter(2, "@Id_Funcionario", dados[2], ParameterDirection.Input);
                dbm.AddParameter(3, "@Dataal", dados[3], ParameterDirection.Input);
                dbm.AddParameter(4, "@Estado", dados[4], ParameterDirection.Input);
                dbm.AddParameter(5, "@Tarifa", dados[5], ParameterDirection.Input);
       
                object obj = dbm.ExecuteNonQuery();
                if (obj != null)
                {
                    if ((int)obj > 0)
                        resul = true;
                }
                dbm.Close();
                dbm.Dispose();
                return resul;
    
            }
    
    
    

    e o metodo de gravação do formulario de gravação

    string Ealuguer="1"; esta como global
    Código:
    
     private bool grava_aluguer()
            {
                Dados d = new Dados();
                bool resul = true;
                string[] dados = new string[6];
                DateTime data = DateTime.Now;
                string DataInvert = " " + data.ToString("dd/MM/yyy hh:mm:ss");
    
                dados[0] =Convert.ToString ( this.txtNome.Text);
                dados[1] =Convert.ToString ( this.txtfilme.Text);
                dados[2] = Convert.ToString (Session["id"]);
                dados[3] = DataInvert; 
                dados[4] = Convert.ToString (Ealuguer);
                dados[5] = Convert.ToString( Session["tarifa"]);
    
                resul = d.grava_aluguer(dados);
    
                return resul;
    
            }
    
    
    a imagem da tabela.

    [​IMG]

    isto esta feito em sqlserver e c#

    gostava de saber porque da o erro

    "Specified cast is not valid."
     
    Última edição: 17 de Janeiro de 2008
  2. alfinete

    alfinete Power Member

    ja descobri o prob , o problema é da conversão da data

    sendo assim gostava de um help de forma a converter a data de uma forma que funcionasse.


    ...............

    obrigado
     
  3. p3dro

    p3dro Power Member

    por curiosidade, porque é que dás um espaço nesta instrução antes do data.ToString ?

    PHP:
    string DataInvert " " data.ToString("dd/MM/yyy hh:mm:ss");
     

Partilhar esta Página