none
Обновление данных на сервере RRS feed

  • Вопрос

  • Доброго времени.

    Как можно обновить данные в таблице на сервере, не используя DataSet. То есть вызываю процедуру с параметрами

    void TableUpdate(int ID, string Text) { ... }. В ней обращаюсь к хранимой процедуре Update_Table в SQL с входными параметрами  и обновляю.

    2 октября 2012 г. 18:58

Ответы

  • Добрый день.

    Не очень понятен вопрос, вы планируете написать метод, который будет вызывать хранимую процедуру? Если да, то это правильный подход. Пример, можно посмотреть здесь.

    • Помечено в качестве ответа Abolmasov Dmitry 9 октября 2012 г. 6:41
    3 октября 2012 г. 5:42
    Отвечающий
  • Да, конечно есть. И по ссылке указанной выше есть пример, как это сделать.

    Но если он вызывает сложности, то могу показать конкретно ваш пример.

    Пусть есть хранимая процедура:

    CREATE PROCEDURE UpdateMyTable 
    	-- Add the parameters for the stored procedure here
    	@id int, 
    	@value varchar(255)
    AS
    BEGIN
    	update myTable set Name = Value where Id = @id
    END

    Тогда ее можно вызвать из C# вот так:

    void TableUpdate(int ID, string Text)
    {
        using (SqlConnection conn = new SqlConnection("ваша строка подключения"))
        {
            SqlCommand comm = new SqlCommand("UpdateMyTable", conn);
            comm.CommandType = CommandType.StoredProcedure;
            comm.Parameters.Add("@id", SqlDbType.Int);
            comm.Parameters["@id"].Value = ID;
            comm.Parameters.Add("@value", SqlDbType.VarChar);
            comm.Parameters["@value"].Value = Text;
            conn.Open();
            comm.ExecuteNonQuery();
        }
    }

    • Помечено в качестве ответа ДДВ 3 октября 2012 г. 7:52
    3 октября 2012 г. 7:13
    Отвечающий

Все ответы

  • Добрый день.

    Не очень понятен вопрос, вы планируете написать метод, который будет вызывать хранимую процедуру? Если да, то это правильный подход. Пример, можно посмотреть здесь.

    • Помечено в качестве ответа Abolmasov Dmitry 9 октября 2012 г. 6:41
    3 октября 2012 г. 5:42
    Отвечающий
  • Добрый день.

    SqlDataReader reader = command.ExecuteReader(); это если я получаю данные из таблицы на сервере. Вот что я хочу:

    1. Данные, которые вводит пользователь необходимо записать или обновить в таблице на сервере, не используя DataSet.

    2. void TableUpdate(int ID, string Text) { ... } - int ID, string Text - это данные

    3. Чтобы обновить или записать данные использую dataadapter.Update(DataSet, Table)

    Есть ли другая технология, чтобы не вызывать вначале Select таблицы, а сразу через процедуру в пункте 3.

    Спасибо.

    3 октября 2012 г. 7:05
  • Да, конечно есть. И по ссылке указанной выше есть пример, как это сделать.

    Но если он вызывает сложности, то могу показать конкретно ваш пример.

    Пусть есть хранимая процедура:

    CREATE PROCEDURE UpdateMyTable 
    	-- Add the parameters for the stored procedure here
    	@id int, 
    	@value varchar(255)
    AS
    BEGIN
    	update myTable set Name = Value where Id = @id
    END

    Тогда ее можно вызвать из C# вот так:

    void TableUpdate(int ID, string Text)
    {
        using (SqlConnection conn = new SqlConnection("ваша строка подключения"))
        {
            SqlCommand comm = new SqlCommand("UpdateMyTable", conn);
            comm.CommandType = CommandType.StoredProcedure;
            comm.Parameters.Add("@id", SqlDbType.Int);
            comm.Parameters["@id"].Value = ID;
            comm.Parameters.Add("@value", SqlDbType.VarChar);
            comm.Parameters["@value"].Value = Text;
            conn.Open();
            comm.ExecuteNonQuery();
        }
    }

    • Помечено в качестве ответа ДДВ 3 октября 2012 г. 7:52
    3 октября 2012 г. 7:13
    Отвечающий
  • Спасибо.
    3 октября 2012 г. 7:53
  • Обращайтесь, если появятся еще вопросы.

    3 октября 2012 г. 7:57
    Отвечающий
  • Спасибо, что не забыли отметить ответ.

    Для связи [mail]

    9 октября 2012 г. 6:41