Структурный / концептуальный совет по работе с пользовательскими функциями для базы данных SQL из C # - PullRequest
0 голосов
/ 04 августа 2011

Мне интересно, смогут ли какие-нибудь опытные разработчики C # / SQL дать мне толчок в правильном направлении, когда я начну с нового проекта.Я из мира MS Access / VBA и пытаюсь разработать систему рыночных данных с C #, SQL server express back = end.Мой главный вопрос: как лучше всего работать с пользовательскими функциями?В access / vba было просто написать udf, а затем вложить их настолько глубоко, насколько мне было необходимо, для продолжения создания новых функций.Так в C # / SQL должен ли быть класс статических функций в C #?Или передать @parameters в SQL?Мне не так просто работать с базой данных из моего приложения.Как всегда, спасибо заранее ...

Ответы [ 2 ]

0 голосов
/ 04 августа 2011

После добавления хранимой процедуры в таблицу базы данных вы можете просто вызвать ее в C # следующим образом:

using System.Data.SqlClient;

private void DoSomething(string storedProcedure, string tableName)
{
 using (var conn = new SqlConnection(ConnectionString))
 {
  conn.Open();
  var cmd = new SqlCommand(storedProcedure, conn) { CommandType = CommandType.StoredProcedure };
  cmd.Parameters.Add(new SqlParameter("@tablename", SqlDbType.NVarChar, 80));
  cmd.Parameters["@tablename"].Value = tableName;
  cmd.ExecuteNonQuery();
 }
}
0 голосов
/ 04 августа 2011

для начала вы можете следовать очень распространенному шаблону:

Вы можете создавать свои функции sql в базе данных sql-сервера. имейте в виду, что они ничего не делают для вашего приложения - они просто что-то делают с данными (например, преобразования, математика и т. д.)

вы можете получить доступ к вашей базе данных из вашего приложения, используя хранимые процедуры базы данных, которые принимают параметры. Хранимые процедуры - это то, что вы будете использовать, например, для возврата набора данных в ваше приложение или любой другой DML.

наконец, вы можете иметь функции / подпрограммы без данных на уровне приложения. Например: у вас может быть функция отправки электронной почты, функция get_data, которая вызывает хранимую процедуру базы данных и т. Д.

поиск ключевых слов для получения дополнительной информации о том, что они / как их использовать.

stored procedure
udf, user defined function
tsql
sql-server
...