i face au problème suivant ::remplacer le mécanisme de la méthode
je veux échapper au caractère suivant 'guillemet simple:
cela fonctionne lors de ce test par: intégré dans la méthode Replace("'","''");
comme ce code ci-dessous: (juste un test), il fonctionne
protected void btn_insert_Click(object sender, EventArgs e)
{
lbl.Text = string.Empty;
SqlConnection mycon = new SqlConnection(Constr);`
SqlCommand mycommand = new SqlCommand("INSERT INTO details VALUES('" + txt.Text.Replace("'", "''") + "','" + txt.Text.Replace("'", "''")+ "')", mycon);
mycon.Open();
int affectedRows = 0;
affectedRows = mycommand.ExecuteNonQuery();
mycon.Close();
}
mais je veux généraliser ma solution pour travailler partout dans l'application à travers mon Inse méthode rt dans la couche d'accès aux données:
public static int InsertEntity(string tblName, Dictionary<string, string> dtParams)
{
int Result = -1;
DBConnection DAL_Helper = new DBConnection("");
string[] field_names = new string[dtParams.Count];
dtParams.Keys.CopyTo(field_names, 0);
string[] field_values = new string[dtParams.Count];
dtParams.Values.CopyTo(field_values, 0);
for (int i = 0; i < field_values.Length; i++)
{
field_values[i].Replace("'", "''");
}
string insertCmd = "INSERT INTO " + tblName + " (" + string.Join(",", field_names) + ") values ('" + string.Join("','", field_values) + "')";
Result = DAL_Helper.Execute_NonQuery(insertCmd);
return Result;
}
cela n'échapper à la 'charecter guillemet simple, bien que j'utilise Replace("'","''");
quel est le problème ,, comment résoudre ce problème?
Remarque: Si vous utilisez il n'y aura pas une procédure ou Entity Framework stockée est un problème d'injection sql. La citation n'est pas le seul caractère, il peut y en avoir d'autres comme '[', '%' etc – dhinesh