Specified cast is not valid. c#

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.



isto esta feito em sqlserver e c#

gostava de saber porque da o erro

"Specified cast is not valid."
 
Última edição:
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
 
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

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");
 
Back
Topo