我有一个aspx以下HTML,所以它已经是一种形式: -文本框不发送输入的值
<asp:TextBox ID="Name" runat="server" MaxLength="50" Width="175px"></asp:TextBox>
我有一个按钮: -
<asp:Button ID="updateDetails" Text="Update Details" runat="server" OnClick="updateDetails_Click" />
在背后我的代码有updateDetails_Click
PROC: -
protected void updateDetails_Click(object sender, EventArgs e)
{
utils utils = new utils();
string connectionString = ConfigurationManager.ConnectionStrings[utils.liveTest() + "arenadestinationsConnectionString"].ToString();
string SQL = "UPDATE Users SET "
+ "Name = @Name, "
+ "WHERE IdUser = @iDUser";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(SQL, connection);
command.Parameters.AddWithValue("@Name", Name.Text);
command.Parameters.AddWithValue("@iDUser", Session["loggedIn"].ToString());
try
{
connection.Open();
command.ExecuteReader();
}
catch
{
}
finally
{
connection.Close();
}
}
}
如果我输入了新文本名称的文本框,当我点击更新详细信息按钮,名称.Text总是显示原始文本,而不是修改后的文本。
我在做什么错?我把自己从VB转换到C#,所以我毫无疑问会学习一些技巧。
尝试存储会话中的值或检查ViewState的,如果它的启用还你在做任何' IsPostBack'检查不良实践忽略了AddWithValues中的@ @你认为这些参数在SQL中被引用/声明了吗?用'@'符号还有你的SqlDataReader对象在哪里? – MethodMan 2013-03-19 16:12:32
不执行任何IsPostback检查。 ViewState默认启用。 – Craig 2013-03-19 16:53:11
我相信下面提供的答案应该可以回答/解决您对上一个问题的回应有点迟的问题.. – MethodMan 2013-03-19 16:56:30