Вставка и удаление базы данных с сохраненной процедурой - PullRequest
0 голосов
/ 26 января 2011

На моей странице .aspx у меня есть два текстовых поля, одна кнопка добавления и одна кнопка удаления.

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

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

Как я могу это сделать?

Просто мне нужна 4 кодовая часть, add_click(), delete_click(), sp_add, sp_delete

Как мне развить эту 4 функцию?

1 Ответ

8 голосов
/ 26 января 2011

Поскольку вы подсказываете нам, как будут выглядеть ваши таблицы и какими будут ваши текстовые поля, это просто "шаблонный" подход.

Кстати: вы должны не ставить префикс к вашим хранимым процедурам с sp_ - этот префикс зарезервирован для Microsoft.

proc_delete

Идея: вы просто передаете первичный ключ (обычно какой-то ID) для удаления:

CREATE PROCEDURE dbo.proc_delete(@PrimaryKey INT)
AS
   DELETE FROM dbo.YourTable
   WHERE ID = @PrimaryKey

proc_add

Вы на самом деле мало что нам рассказываете о том, что хотите сделать ..... так что есть одна возможность

CREATE PROCEDURE dbo.proc_add(@value1 VARCHAR(50), @value2 VARCHAR(50))
AS 
    INSERT INTO dbo.YourTable(Value1, Value2)
    VALUES(@value1, @value2)

Из вашего кода ASP.NET вам нужно будет сделать следующее:

  • создать SqlConnection для базы данных
  • создайте подходящий SqlCommand для выполнения желаемой команды
  • настроить параметры и заполнить их значениями
  • выполнить процедуру

Так что в случае delete_click() у вас будет что-то вроде:

public void delete_click()
{
    using(SqlConnection _con = new SqlConnection(-your-connection-string-here-))
    using(SqlCommand _cmdDelete = new SqlCommand(_con, "dbo.proc_delete"))
    {
        _cmdDelete.CommandType = CommandType.StoredProcedure;

        // add parameter
        _cmdDelete.Parameters.Add("@PrimaryKey", SqlDbType.Int);
        _cmdDelete.Parameters["@PrimaryKey"].Value = (your key value here);

        // open connection, execute command, close connection
        _con.Open();
        _cmdDelete.ExecuteNonQuery();
        _con.Close();
    }
}

Это был бы грубый план, как это сделать - я оставлю add_click() на ваше усмотрение!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...