У меня есть эта хранимая процедура
CREATE PROCEDURE spEditInfo
@username nvarchar(64),
@password nvarchar(64),
@firstname nvarchar(64),
@middlename nvarchar(64),
@lastname nvarchar(64),
@email nvarchar(64) AS
UPDATE Users
SET password=@password,
firstname=@firstname,
middlename=@middlename,
lastname=@lastname,
email=@email
WHERE username=@username;
Но проблема в этом.Независимо от того, какие значения я добавлю в качестве оставшихся параметров, будет изменен только пароль.Есть идеи, почему?
Вот мой код вызова:
SqlCommand cmd = new SqlCommand("spEditInfo", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("username", SqlDbType.NVarChar, 64);
cmd.Parameters.Add("password", SqlDbType.NVarChar, 64);
cmd.Parameters.Add("firstname", SqlDbType.NVarChar, 64);
cmd.Parameters.Add("middlename", SqlDbType.NVarChar, 64);
cmd.Parameters.Add("lastname", SqlDbType.NVarChar, 64);
cmd.Parameters.Add("email", SqlDbType.NVarChar, 64);
cmd.Parameters["username"].Value = Username.Text;
cmd.Parameters["password"].Value = Password.Text;
cmd.Parameters["firstname"].Value = FirstName.Text;
cmd.Parameters["middlename"].Value = MiddleName.Text;
cmd.Parameters["lastname"].Value = LastName.Text;
cmd.Parameters["email"].Value = Email.Text;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
РЕДАКТИРОВАТЬ: Хорошо, я признаю, что я тратил время, глядя на неправильный конец.У меня есть значения для элементов управления, инициализированных во время page_load.Он перезаписывает все изменения, кроме пароля, который я не показываю.
Любые предложения о том, как улучшить это ??Я хочу, чтобы зафиксированные данные отображались в форме.
РЕДАКТИРОВАТЬ: вернуться к квадрату 1. Кажется, что данные идеально передаются в SP, потому что у меня есть SP теперь сделать небольшую запись параметров вTXT-файл снаружи.Однако кажется, что значения не обновляются при вызове моей страницей ASP.NET.Это необычно, так как при ручном выполнении SP работает, но не при вызове через мой код.