Error con el mapeo de DateTime C # -- # campo con sql campo con sql-server campo con datetime camp Relacionados El problema

Error with DateTime mapping C#


0
vote

problema

Español

Estoy trabajando en un programa que está tirando de datos de una instancia de SQLSERVER y manipulándola en una aplicación C # Console. Estoy teniendo problemas para mapear el valor de DateTime Correclntly. Estoy usando Enterprise Library 5. Este es el error que recibo

No se encontró la columna DOB en la evaluación de Idatarecord. Esto podría indicar que el accesorio fue creado con las asignaciones incorrectas

Esta es la interfaz de Mapper Param

  start6  

En la clase que está modelando el tipo de objeto que tendrá las asignaciones, tiene esta declaración start7 . La clase en la que realmente implemento la interfaz tiene pases de la DOB como esta: 99887776628

El método real que pasa la consulta es la siguiente:

  start9  

El mapeo real es el siguiente:

  00  

El nombre de la columna es correcto, por lo que no estoy seguro de si este error tiene que ver con la interfaz o si hay algún casting explícito, tengo que pasar en DateFbirth?

Original en ingles

I'm working on a program that is pulling data from a SQLserver instance and manipulating it in a C# console application. I'm having trouble mapping dateTime value correcltly. I'm using Enterprise Library 5. This is the error I get

The Column DOB was not found on the IDataRecord being evaluated. This might indicate that the accessor was created with the wrong mappings

This is the param mapper interface

public class MyParameterMapper : IParameterMapper {     public void AssignParameters(DbCommand command, object[] parameterValues)     {         var parameter = command.CreateParameter();         parameter.ParameterName = "@dateOfBirth";         parameter.Value = parameterValues[0];         parameter.DbType = DbType.DateTime;         command.Parameters.Add(parameter);     } } 

In the class that is modeling the type of object which will have the mappings has this declaration public DateTime? DateOfBirth {get; set;}. The class in which I actually implement the interface has pases the DoB like this: var matches = _objectAdapter.GetList(person.DateOfBirth.Value).ToList();

The actual method that passes the query is as follows:

public IEnumerable<Person> GetList(DateTime dateOfBirth) {     const string sql = (@"SELECT FirstName, LastName             FROM   Table             WHERE  DOB = @dateOfBirth");      var accessor = new SqlStringAccessor<Person>(_db, sql, new MyParameterMapper(),_myRowMapper);     var people = accessor.Execute(dateOfBirth);     return people; } 

The actual mapping is as follows:

private IRowMapper<Person> _myRowMapper = MapBuilder<Person>.MapAllProperties()         .Map(x => x.FirstName).ToColumn("FirstName")         .Map(x => x.LastName).ToColumn("LastName")         .Map(x => x.DateOfBirth).ToColumn("DOB")         .Build(); 

The column name is correct, so I'm not sure if this error has to do with interface or if there is some explicit casting I have to pass on DateOfBirth?

           

Lista de respuestas

2
 
vote

Intente agregar DOB a su cláusula Seleccionar ...

  const string sql = (@"SELECT FirstName, LastName, DOB                 FROM   Table                 WHERE  DOB = @dateOfBirth");    
 

Try add DOB to your select clause...

const string sql = (@"SELECT FirstName, LastName, DOB                 FROM   Table                 WHERE  DOB = @dateOfBirth");  
 
 
   
   

Relacionados problema

1955  ¿Cómo calculo la edad de alguien en función de un cumpleaños tipo DateTime?  ( How do i calculate someones age based on a datetime type birthday ) 
Dado un Form5 que representa el cumpleaños de una persona, ¿cómo calculo su edad en años? ...

17  Tiempo de falsificación sin cambiar el reloj del sistema de Windows  ( Faking time without changing windows system clock ) 
¿Alguien sabe de una herramienta de Windows para reportar fechas / horarios falsos a un proceso? Aparentemente hay programas de Linux que se pueden usar par...

1563  Calcular el tiempo relativo en C #  ( Calculate relative time in c sharp ) 
Dado un valor específico double16 , ¿cómo mostrar el tiempo relativo, como: hace 2 horas hace 3 días hace un mes ...

2  C # fechas - bases de datos, pantalla y localización  ( C sharp dates databases display and localization ) 
Qué son algunas de las mejores prácticas de Fecha (y AMP) Formato de las mejores prácticas cuando quiera adherirse a la localización en una nueva aplicación. ...

0  Cómo convertir la fecha en el cuadro de texto a MySQL DateTime Format  ( How to convert date in text box to mysql datetime format ) 
Soy bastante nuevo en PHP y he estado leyendo Larry Ullman Libro para desarrollar un sitio básico de DB. He utilizado el selector de la fecha de YUI Calendar ...

68  ¿Cómo analizar un tiempo en un objeto de fecha de la entrada del usuario en JavaScript?  ( How to parse a time into a date object from user input in javascript ) 
Estoy trabajando en un widget de formularios para que los usuarios ingresen una hora del día en una entrada de texto (para una solicitud de calendario). Uso d...

-1  Operación MySQL DateTime  ( Mysql datetime operation ) 
¿Cómo obtener el valor de DateTime Varios días / semanas / meses / años más tarde en MySQL? Solo sé que el DateTime actual es ahora (). ...

3  Calculando un delta de años desde una cita  ( Calculating a delta of years from a date ) 
Estoy tratando de descubrir una manera de calcular el año de nacimiento para los registros cuando se le da la edad a dos decimales en una fecha determinada, e...

85  ¿Cómo eliminar la parte de tiempo de un valor de DateTime (SQL Server)?  ( How to remove the time portion of a datetime value sql server ) 
Aquí está lo que uso: SELECT CAST(FLOOR(CAST(getdate() as FLOAT)) as DATETIME) Estoy pensando que puede haber una manera mejor y más elegante. Requis...

41  Convierta la cadena hasta la fecha en .NET si mi formato de fecha entrante está en yyyymmdd  ( Convert string to date in net if my incoming date format is in yyyymmdd ) 
¿Cuál es la mejor manera de convertir la cadena hasta la fecha en C # si mi formato de fecha entrante está en YYYYMMDD EX: 20001106 ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos