Я пытаюсь создать общий код для построения запроса вставки / обновления. До сих пор я только создал запрос на обновление, но у меня есть сомнения относительно внедрения SQL.
Моя основная цель - попытаться создать код, чтобы сократить время повторного ввода одного и того же кода снова и снова.
public SqlConnection SqlConn;
private SqlCommand SqlComm;
public void UpdateRow(string TableName, string UpdateCondition, List<KeyValuePair<string, string>> FieldAndValueList)
{
SqlOpen();
try
{
string UpdateString = $"UPDATE {TableName} ";
int counter = 0;
foreach (KeyValuePair<string, string> FieldAndValue in FieldAndValueList)
{
if (counter > 0) { UpdateString += "," };
UpdateString += $"SET {FieldAndValue.Key} = {FieldAndValue.Value} ";
Counter += 1;
}
if (UpdateCondition.Trim() != "") { UpdateString += $"WHERE {UpdateCondition};"; }
SqlComm = SqlConn.CreateCommand();
SqlComm.CommandText = UpdateString;
SqlComm.ExecuteNonQuery;
}
catch { ShowError(); }
finally { SqlClose(); }
}
Тогда это будет выполнено так:
List<KeyValuePair<string, string>> UpdateValues = new List<KeyValuePair<string, string>>;
UpdateValues.Add(new KeyValuePair<string, string>("age", txtAge.text));
UpdateRow("user", "user_id = X", UpdateValues);
Я пытаюсь создать его, чтобы SQL-инъекция была невозможна.