Можете ли вы передать параметры в виде коллекции?Таким образом, он неограничен и прост в использовании.Вот как я делаю это для своих собственных проектов
public void AddSomethingToDatabase(Dictionary<string, object> parameters)
{
foreach(KeyValuePair<string, object> param in parameters)
{
string paramname = param.Key;
object paramvalue= param.Value;
sp.AddParameter(paramname, paramvalue);
}
conn.Execute(...);
}
РЕДАКТИРОВАТЬ: Я хотел бы уточнить, как я использовал этот метод в моих собственных программах.
Я указываю параметры процедуры базы данных в самом методе и передаю параметры, как вы делаете.Я понимаю, что есть лучший способ, например, использование DTO
public void AddSomethingToDatabase(string param1, int param2)
{
Dictionary<string, object> parameters = new Dictionary<string, object>();
parameters.Add("pID", param1);
parameters.Add("pName", param2);
ModifyDatabase(parameters, "update_myTable");
}
public void ModifyDatabase(Dictionary<string, object> parameters, string procedure)
{
// Do necessary checks on parameters here
// Check database availability
// And many other checks that would be recurring for every database transaction
// ... that's why I have them all in one place. Executing Queries is the same
// ... every time. Why would you write the error handling twice? :-)
// Loop parameters and fill procedure parameters
// Execute the lot
}
.