Вместо передачи массива имен и массива значений, вы можете передать Dictionary<string, object>
, который содержит имена параметров для ключей и произвольные объекты (в вашем случае, также строки) для значений, которые выхотите вставить в ваш запрос.
Каждый элемент содержит строку с именем вашего параметра и значением, которое он должен быть заменен.Они связаны с так называемыми парами ключ-значение и помогают сделать его более понятным для сопоставления имени и значения для вашего запроса.
Примерно так:
var parameters = new Dictionary<string, object>
{
{ "?FirstName", "Josef" },
{ "?LastName", "Stalin" }
};
MyConnection.MySqlLink(strConnection, strCommand, parameters, dtTable);
Здесь вы можете видеть, что использовать словарь проще, чем управлять двумя отдельными наборами параметров и значений соответственно.
В своем методе используйте цикл foreach с KeyValuePair<TKey, TValue>
вместо цикла for счисловые индексы, такие как:
public static void MySqlLink(string strConnection, string strCommand, Dictionary<string, object> parameters, DataTable dtTable)
{
dtTable.Clear();
MySqlConnection MyConnection = new MySqlConnection(strConnection);
MySqlCommand MyCommand = new MySqlCommand(strCommand, MyConnection);
foreach (KeyValuePair<string, object> param in parameters)
{
MyCommand.Parameters.AddWithValue(param.Key, param.Value);
}
MySqlDataAdapter MyDataAdapter = new MySqlDataAdapter(MyCommand);
MyDataAdapter.Fill(dtTable);
}