2010-07-01 4 views
2

Je mets à jour la table a avec différentes valeurs et dans ce type de données de date également. Après la mise à jour du tableau, j'initialise les variables à 0 et les espaces en fonction des types de données, mais je n'arrive pas à initialiser le Datatype DateHeure.Type de données Valeur de date d'initialisation

Comment puis-je faire cela en C#?

+0

Pour vous aider, nous devons savoir, vous utilisez ADO.NET 2.0, Linq-à-Sql, Entity Framework? De cette façon, nous pourrions vous aider. –

Répondre

7

Vous pouvez obtenir initialiser la valeur pour chaque type de valeur par « défaut » mot-clé

DateTime a = default(DateTime); 
+1

'default (type)' fonctionne pour tout type, pas seulement pour les types de valeur. 'default (string)' vous donnera 'null'. –

1

Vous pouvez initialiser les valeurs default(type) implicitement - pour DateTime: default(DateTime).

Pour les opérations de base de données, vous seriez probablement mieux avec le type SqlDateTime car les valeurs minimales ou maximales de DateTime ne peuvent généralement pas être stockées dans des bases de données en tant que types de date.

Initialisation:

string connString = "..."; 
string cmdText = @"INSERT INTO Test(col1, col2) VALUES (@col1, @col2)"; 
using (SqlConnection conn = new SqlConnection(connString)) 
{ 
    using (SqlCommand cmd = new SqlCommand(cmdText, conn)) 
    { 
     cmd.Parameters.Add("@col1", SqlDbType.NVarChar).Value = ""; // or .Value=DBNull.Value; 
     cmd.Parameters.Add("@col2", SqlDbType.DateTime).SqlValue = default(SqlDateTime); // or .Value=DBNull.Value; 
    } 
} 

Vous pouvez initialiser toutes les valeurs à DBNull.Value

+0

Pouvez-vous aider à écrire le sql comamnd comment le faire .. merci beaucoup. – Dattu

+0

Vous pouvez utiliser le code dans ma publication mise à jour. En outre, si la colonne d'une table est nullable, vous pouvez initialiser les valeurs avec le DBNUll comme indiqué dans le code. –

0

Réglez le DateTime null avec ce code:

DateTime? datetime; 

Depuis DateTime est une struct, non une classe, vous obtenez un objet DateTime, pas une référence, lorsque vous déclarez un champ ou une variable de ce type. Et, de la même manière qu'un int ne peut pas être nul, cet objet DateTime ne peut jamais être nul, car ce n'est pas une référence. L'ajout du point d'interrogation le transforme en un type nullable, ce qui signifie qu'il s'agit d'un objet DateTime ou null.

Enfin lors de l'utilisation de la valeur, affecter la valeur à un DateTime:

if(datetime.hasvalue) 
{  
DateTime dt = datetime.value; 
} 
Questions connexes