Здравствуйте. Знатоки, подскажите, как в C# по аналогии с PHP сделать передачу параметров в sql-запрос ассоциативным массивом дабы сделать универсальную функцию? Очень уж громоздко получается на C# без этого.
Вот пример на php:
function db_query($query, $params = array(), $options = array())
{ //Запрос к БД, где query: текст запроса, params: значения полей или параметры
global $handle;
$handle = $this->db_connect('forum');
$resource = $handle->prepare($query, $options);
$resource->setFetchMode(PDO::FETCH_ASSOC);
$resource->execute($params);
return $resource;
}
function insert($params = array(), $query = 'INSERT INTO user(login, pass, email, status) values(:login, :password, :email, 2)') {
$resource = $this->db_query($query, $params);
return $this->db_last_insert_id();
}
Вот пример на C#
public int Insert(int id, string name, string desc, int orderStatusChange)
{
id = 0;
int count = 0;
Models.DTO.Request request = new Models.DTO.Request();
using (OracleConnection connection = new OracleConnection(Service1.CONNECTION_STRING))
{
connection.Open();
OracleCommand oraCommand = new OracleCommand("INSERT INTO system.request (request_id, request_name, description, request_status_change_id) "
+ " VALUES (request_seq.NEXTVAL, :req_name, :descr, :orderStatusChange);", connection);
oraCommand.Parameters.Add("req_name", name);
oraCommand.Parameters.Add("descr", desc);
oraCommand.Parameters.Add("orderStatusChange", orderStatusChange);
count = oraCommand.ExecuteNonQuery();
}
return count;