2017-08-09 2 views
0

je charge quelques objets ADO.NET:Set colonne datarow de SQLDATETIME à Null

Dim conPERP As New System.Data.SqlClient.SqlConnection(OISConnectString) 
    Dim cmd As New System.Data.SqlClient.SqlCommand("", conPERP) 
    daCERTs.SelectCommand = New SqlCommand("SELECT * FROM PERP_Certs_DMS", conPERP) 
    Dim cmdBldr As New SqlCommandBuilder(daCERTs) 
    daCERTs.Fill(dsCERTs) 
    daCERTs.FillSchema(dsCERTs, System.Data.SchemaType.Mapped) ' later troubleshooting attempt 
    dtCERTs = dsCERTs.Tables(0) 

Utilisation de SQL Server 2008. L'une des colonnes dtCERTs est de type datetime SQL. La colonne est nullable. Un rapport a déjà une valeur, mais je dois le redéfinir sur NULL.

 sWhere = $"registrationNo={c("regNo")} AND Instance_ID={sInst}" 
     row = dtCERTs.Select(sWhere)(0) 
     row("Why_Archived") = DBNull.Value ' varchar - works 
     row("Record_Archive_Date") = SqlDateTime.Null ' causes error 

Dernière ligne provoque une erreur:

Unable to cast object of type 'System.Data.SqlTypes.SqlDateTime' 
to type 'System.IConvertible'.Couldn't store <Null> 
in Record_Archive_Date Column. Expected type is DateTime. 

Null.Value ne fonctionne pas. SqldateTime.Null.Value provoque une erreur: "Les données sont nulles Cette méthode ou propriété ne peut pas être appelée sur des valeurs Null."

Comment définir la colonne datetime sur NULL?

Répondre

1

Utilisez

row("Record_Archive_Date") = DBNull.Value 

Comme vous l'avez pour les varchar

+0

Works - aurait juré que j'essayé. – rheitzman