Tengo un archivo de texto que leo en una tabla de datos y luego realizo una inserción masiva en una tabla de SQL Server. Es bastante rápido y funciona de maravilla cuando todos los valores importados se tratan como cadenas (fechas, cadenas, entradas, etc. se importan en campos de cadenas).Configuración de un elemento de DataRow para anular
Ahora que tengo el concepto resuelto, volveré a asignar los tipos de datos reales en la base de datos y mi código. La base de datos tiene los tipos correctos asignados a los campos. Estoy trabajando en el código ahora.
Tengo un problema con las fechas. Como mencioné, todo es una cadena y se convierte al tipo correcto. En el siguiente código, quiero probar si el valor de la cadena que representa una fecha es nulo o en blanco. Si no es nulo, entonces use el valor existente. De lo contrario, establézcalo en nulo.
row[i] = !string.IsNullOrWhiteSpace(data[i]) ? data[i] : DBNull.Value;
He intentado utilizar null
pero obtendrá un error que me dice que use DBNull
lugar. Cuando uso DBNull
, recibo un mensaje que me dice que no hay una conversión implícita entre cadena y System.DBNull
.
Las columnas de la tabla de datos se han especificado los tipos de datos (en este caso, DataType = Type.GetType("System.DateTime")
) y establecer AllowDBNull = true
para esta columna
¿Cómo puedo manejar esto?
Gracias!
Sólo tiene que echar a uno de ellos a 'object'. – SLaks