Comment insérer la valeur null dans la base de données?
Salut, je suis en train d'essayer d'insérer la valeur null dans une colonne de base de données selon un gridview datakeys valeur (si le fait d'être "" insérer la valeur null dans la base de données)
Cependant, je suis un "espace" à l'intérieur de la colonne de base de données.
string sbcId = gvTest.DataKeys[gr.RowIndex]["myColumn"].ToString();
insgnp.Parameters.Add(new OleDbParameter("EMPID", (sbcId==""?DBNull.Value.ToString():sbcId)));
Avez-vous vu ce réel T-SQL est exécutée? (c'est à dire avec le générateur de profils SQL). Le ToString probablement se met dans la ". Mais vous disiez il y a un espace ', je ne peux voir comment cela pourrait arriver. Plus susceptibles sbcId != "", c'est == " ".
Grâce RPM1984. Je suis de l'utilisation de DB2. Il semble que l'utilisation de ToString() a été traduit en quelque sorte, en ' l'intérieur de la colonne de base de données.
Grâce RPM1984. Je suis de l'utilisation de DB2. Il semble que l'utilisation de ToString() a été traduit en quelque sorte, en ' l'intérieur de la colonne de base de données.
OriginalL'auteur Zo Has | 2010-10-12
Vous devez vous connecter pour publier un commentaire.
Que vous avez à réécrire votre code:
Le problème avec le ternaire si la déclaration que vous avez, c'est que son returntype doit toujours être le même, qui est pourquoi vous ne pouvez pas l'utiliser (chaîne et DbNull.La valeur ne sont pas compatibles)
OriginalL'auteur Klaus Byskov Pedersen
Utilisation
DBNull.Value
, pasDBNull.Value.ToString
. (Avec d'autres paramètres (types de collection .NET tout simplement à l'aide denull
également de travailler, mais je ne suis pas sûr à 100% surOleDbParameter
).Comme pour le tertiaire de l'opérateur. Ne jette pas à la chaîne, mais la fonte de la chaîne de l'objet:
Ah. Ajouté quelque chose sur le casting.
Merci, cela a aussi été très utile. I +1 de vous en tant que réponse est déjà marqué.
OriginalL'auteur Jon Hanna
Vous devez utiliser
DBNull.Value
pasDBNull.Value.ToString()
DBNull.Value.ToString()
est "Ce programme donne
qu'est-ce que le ddl pour la table? Faut-il avoir un élément déclencheur?
nan c'est une simple instruction insert avec des paramètres.
parce que les guillemets simples qu'il a utilisé est le texte tel qu'il est déclaré en utilisant les guillemets doubles et faussé le résultat, lors de l'utilisation chaîne de format, vous n'avez pas besoin d'encapsuler la variable {0} dans les citations... ie.
Console.WriteLine("{0}", DBNull.Value.ToString());
aurait été tout simplement parfait.OriginalL'auteur Preet Sangha
Essayer ci-dessous en enlevant ToString() après DBNull.Valeur
OriginalL'auteur Pranay Rana
SQLString.Null
devrait faire le travail très bien 🙂OriginalL'auteur Joost00719
Si vous Insérez un non de la chaîne de valeur dans la base de données access, vous pouvez écrire la requête d'insertion de cette façon
Insert into nom_table (colonne1,colonne2) values (NULL,NULL);
Mais que vous voulez insérer la valeur null dans le Texte Court ou Long champ de Texte dans l'accès vous pouvez écrire la requête d'insertion de cette façon
Insert into nom_table (colonne1, colonne2) values(",");
OriginalL'auteur Debasis Mondal
Je préfère utiliser une méthode d'extension pour gérer au lieu de plusieurs instructions if. Cela vous permet de tenir compte de la valeur null ou une chaîne vide des valeurs. Permet également d'être réutilisable.
Alors vous pouvez utiliser
OriginalL'auteur JMIII
votre chaîne comme ça
maintenant, ajoutez la ligne suivante
insérez-la dans la db et de vérifier si vous avez la valeur null leur logique
OriginalL'auteur Zepto sys