я сталкиваюсь со следующей проблемой ::заменить метод механизм
я хочу, чтобы избежать следующего символа 'одинарная кавычка:
это работает, делая этот тест через: встроенный метод Replace("'","''");
, как этот код ниже: (только тест) он работает
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();
}
, но я хочу, чтобы обобщить мое решение работать по всему приложению через мой Inse Метод к.т. в слое доступа к данным:
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;
}
это не спасаясь от "одинарной кавычки charecter, хотя я использую Replace("'","''");
что проблема ,, как решить эту проблему?
Примечание: Если вы используете хранимую процедуру или Entity Framework не будет никаких проблем в SQL инъекции. Цитата не единственный персонаж, который может быть другим, например, «[», «%» и т. Д. – dhinesh 2010-12-08 13:13:20