这是我的 OnClick 事件:
protected void Submit_Click(object sender, EventArgs e)
{
try
{
using (SqlConnection con = new SqlConnection(conString))
{
using (SqlCommand cmd = new SqlCommand("administratorUpdate", con))
{
cmd.Parameters.Add("@originalID", SqlDbType.VarChar).Value = IDHF.Value;
cmd.Parameters.Add("@firstName", SqlDbType.VarChar).Value = firstNameTB.Text;
cmd.Parameters.Add("@lastName", SqlDbType.VarChar).Value = lastNameTB.Text;
cmd.Parameters.Add("@userName", SqlDbType.VarChar).Value = userNameTB.Text;
cmd.Parameters.Add("@emailAddress", SqlDbType.VarChar).Value = emailAddressTB.Text;
cmd.CommandType = CommandType.StoredProcedure;
}
}
GetAllRPT.DataBind();
Label ErrorMessageLabel = (Label)Master.FindControl("ErrorMessageLabel");
new myFunctions().DisplayUserMessage("success", "Administrator Updated!", ErrorMessageLabel);
AdminForm.Visible = false;
}
catch (Exception ex)
{
Label ErrorMessageLabel = (Label)Master.FindControl("ErrorMessageLabel");
new myFunctions().DisplayUserMessage("error", ex.Message, ErrorMessageLabel);
}
}
这是我的存储过程 [administratorUpdate]:
ALTER PROCEDURE [dbo].[administratorUpdate]
@originalID UNIQUEIDENTIFIER,
@firstName varchar (100),
@lastName varchar (100),
@userName varchar (100),
@emailAddress varchar (100),
@password varchar (100),
@isActive bit
AS
UPDATE administrator
SET userName = @userName,
emailAddress = @emailAddress,
password = @password,
firstName = @firstName,
lastName = @lastName,
isActive = @isActive
WHERE
ID = @originalID
代码执行并显示成功消息,但数据表未更新。谁知道为什么?我不熟悉在 ASP 中使用存储过程。
最佳答案
你在执行命令吗?
using (SqlConnection con = new SqlConnection(conString))
{
conn.Open(); //this was missing
using (SqlCommand cmd = new SqlCommand("administratorUpdate", con))
{
cmd.Parameters.Add("@originalID", SqlDbType.VarChar).Value = IDHF.Value;
cmd.Parameters.Add("@firstName", SqlDbType.VarChar).Value = firstNameTB.Text;
cmd.Parameters.Add("@lastName", SqlDbType.VarChar).Value = lastNameTB.Text;
cmd.Parameters.Add("@userName", SqlDbType.VarChar).Value = userNameTB.Text;
cmd.Parameters.Add("@emailAddress", SqlDbType.VarChar).Value = emailAddressTB.Text;
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery(); //this was missing.
}
conn.Close();
}
关于c# - ASP C# |使用 SQL 和存储过程更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4456149/