Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > обновление данных в таблице


Автор: Springtime 14.12.2007, 09:00
Все привет. Помогите пожалуйста

В общем имеется такой код на C# по обновлению информации о пользователи, т.е. редактирование профиля -

Код

public string UpdateCustomer(string CustomerID, string FullName, string Adrs, string Tel, string Email)
        {

            SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
            SqlCommand myCommand = new SqlCommand("CMRC_UpdateCustomer", myConnection);

            myCommand.CommandType = CommandType.StoredProcedure;

            SqlParameter parameterFullName = new SqlParameter("@FullName", SqlDbType.NVarChar, 50);
            parameterFullName.Value = FullName;
            myCommand.Parameters.Add(parameterFullName);

            SqlParameter parameterAdrs = new SqlParameter("@Adrs", SqlDbType.NVarChar, 50);
            parameterAdrs.Value = Adrs;
            myCommand.Parameters.Add(parameterAdrs);

            SqlParameter parameterTel = new SqlParameter("@Tel", SqlDbType.NVarChar, 50);
            parameterTel.Value = Tel;
            myCommand.Parameters.Add(parameterTel);

            SqlParameter parameterEmail = new SqlParameter("@Email", SqlDbType.NVarChar, 50);
            parameterEmail.Value = Email;
            myCommand.Parameters.Add(parameterEmail);

            SqlParameter parameterCustomerID = new SqlParameter("@CustomerID", SqlDbType.Int, 4);
            parameterCustomerID.Value = CustomerID;
            myCommand.Parameters.Add(parameterCustomerID);

            myConnection.Open();
            myCommand.ExecuteNonQuery();
            myConnection.Close();
            
            return "Команда выполнена";
        }


и вот такая хранимая процедура к этому коду, по идеи обновляющая данные в таблице

Код

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO


ALTER Procedure [dbo].[CMRC_UpdateCustomer]
(
    @CustomerID int,
    @FullName   nvarchar(50),
    @Email      nvarchar(50),
    @Tel        nvarchar(50),
    @Adrs        nvarchar(50)
)
AS

UPDATE CMRC_Customers

SET
    FullName = @FullName, 
    EmailAddress = @Email, 
    Tel = @Tel,
    Adrs = @Adrs    

FROM 
    CMRC_Customers

WHERE
    CustomerID = @CustomerID


но ничего не обновляется, после нажатия кнопки сохранить на форме, возрщаются не обновленные данные...

Код

    protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {
        string customerID = User.Identity.Name;
        string testx;
        ASPNET.StarterKit.Commerce.CustomersDB accountSystem = new ASPNET.StarterKit.Commerce.CustomersDB();
        testx = accountSystem.UpdateCustomer(customerID, Server.HtmlEncode(Name.Text), Adrs.Text, tel.Text, Email.Text);
        WelcomeMsg.Text = testx;
        Response.Cookies["ASPNETCommerce_FullName"].Value = Server.HtmlEncode(Name.Text);
        Response.Redirect("OrderList.aspx");
    }


Что еще и где нужно дописать? или в чем ошибка?

Автор: Servena 14.12.2007, 09:12
Эта хранимая процедура нормально отрабатывает, если ее запустить с Microsoft SQL Server Management Studio ?

Автор: Springtime 14.12.2007, 09:38
При нажатии на кнопку - Выполнить, пишет что - Выполнение команд успешно завершено.

Автор: Servena 14.12.2007, 09:43
Перефразирую вопрос: оно записало то что нужно в базу?

Автор: Springtime 14.12.2007, 10:14
Да выполняется, значения обновляются, возращает значение нуль

Автор: Servena 14.12.2007, 10:22
А так:
Код

SqlCommand myCommand = new SqlCommand("dbo.CMRC_UpdateCustomer", myConnection);

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

Добавлено через 13 минут и 20 секунд
Дальше, поставь точку останова внутри функции обновления, например здесь:
Код

SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);


и посмотри, чему равны следующие величины (входные параметры этой функции)
Код

string CustomerID, string FullName, string Adrs, string Tel, string Email


Нужно знать, передаются вообще данные туда или нет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)