J'ai une méthode dynamique pour insérer SQL. Lorsque je mets une valeur nulle ou vide sur le paramètre, mon ExecuteNonQuery()
échoue ... Comment l'ajuster?SqlCeParameter null
J'utilise Compact Edition SQL Server:
public static void SqlInsert(string table, Dictionary<string, object> values)
{
using (var conn = new SqlCeConnection(ConnectionStringDestino))
{
conn.Open();
var equals = new List<string>();
var columns = new List<string>();
var parameters = new List<SqlCeParameter>();
var i = 0;
foreach (var item in values)
{
var pn = "@sp" + i;
columns.Add(string.Format(item.Key));
equals.Add(string.Format("{0}", pn));
parameters.Add(new SqlCeParameter(pn, item.Value));
i++;
}
string command = string.Format("INSERT INTO {0} ({1}) VALUES ({2}) ", table, string.Join(", ", columns.ToArray()), string.Join(", ", equals.ToArray()));
var sqlcommand = new SqlCeCommand(command, conn);
sqlcommand.Parameters.AddRange(parameters.ToArray());
sqlcommand.ExecuteNonQuery();
}
}
Les colonnes sont-elles nulles? A quoi ressemble le SQL généré? –
Ma colonne accepte les valeurs nulles. – Pedro
Quel genre d'erreur obtenez-vous? –