J'ai un DataGrid qui utilise un objet de liste. Je voudrais empêcher les utilisateurs d'entrer des valeurs en double dans la base de données.Comment capturer les valeurs en double et afficher la boîte de message pendant la lecture de la base de données?
Ma procédure stockée empêche déjà les données en double d'entrer dans la base de données, mais je voudrais montrer un message plus descriptif aux utilisateurs expliquant qu'ils ne peuvent pas entrer des valeurs en double.
Ci-dessous mon code où j'insérer des valeurs via une procédure stockée:
using (var cn = ConnectionManager<SqlConnection>.GetManager(Database))
using (var cmd = new SqlCommand("Save", cn.Connection))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@TableId", ReadProperty(TableIdProperty));
cmd.Parameters.AddWithValue("@Q1", ReadProperty(Q1Property).ToUpper());
cmd.Parameters.AddWithValue("@Q2", ReadProperty(Q2Property));
using (var dr = new SafeDataReader(cmd.ExecuteReader()))
{
//Would like to capture duplicates here if a record already exists with same Q1 and Q2 values
if (dr.Read())
LoadProperties(dr);
else
dr.NextResult(); // sproc error happens here
}
}
Pouvez-vous partager le code de la procédure stockée? Comment cela empêche-t-il les doublons? Est-ce qu'il déclenche une erreur s'il y a des valeurs en double? –
Il déclenche une erreur d'application et «annule» l'insertion. – Mihika
J'ai ajouté du code sproc là où il y a une erreur. – Mihika