【问题标题】:Update DB with updated Textbox Information in C#在 C# 中使用更新的文本框信息更新数据库
【发布时间】:2017-03-15 15:21:24
【问题描述】:

尝试更新学生的名字时,有一个文本框“FirstNameTextbox”信息从数据库加载到它,当我更改文本框中的信息并尝试将更改写入它时,它只读取原始数据。所以如果它从数据库加载“Craig”作为名字,我会编辑并将“Chris”放在文本框中,会发生什么是 Craig 被写入数据库而不是“Chris”

int stuID = getSqlStuID(IDNUMLabel.Text);
SqlConnection conn = new SqlConnection(GetConnectionString());
string sqlUpdateStudent = "Update tblStudent set fname = @fname where stuID = @stuID";
SqlCommand cmd = new SqlCommand(sqlUpdateStudent, conn);

conn.Open();

cmd.Parameters.AddWithValue("@stuID", stuID);
cmd.Parameters.AddWithValue("@fname", FirstNameTextbox.Text);

cmd.ExecuteNonQuery();

ErrorMessage.Text = "Success";


protected void Page_Load(object sender, EventArgs e)
{
    if (Session["User"] != null)
    {
        IDNUMLabel.Text = Session["User"].ToString();
        getStuData(Session["User"].ToString());
    }
    else
    {
        Response.Redirect("../Login/Login.aspx");
    }
}

private void getStuData(string id)
{
    SqlConnection conn = new SqlConnection(GetConnectionString());

    string sql = "Select fname, sname From tblStudent Where idnumber = '" + id + "' ";

    SqlCommand cmd = new SqlCommand(sql, conn);

    try
    {
        conn.Open();

        SqlDataReader selectedRecord = cmd.ExecuteReader();

        cmd.CommandType = CommandType.Text;

        while (selectedRecord.Read())
        {
            FirstNameTextbox.Text = selectedRecord["fname"].ToString();
            LastNameTextbox.Text = selectedRecord["sname"].ToString();
        }

        selectedRecord.Close();
    }
    catch (System.Data.SqlClient.SqlException ex)
    {

        //id = 0;
        //string msg = "Error reading Student ID";
        //msg += ex.Message;
        //throw new Exception(msg);
    }
    catch (Exception ex)
    {

    }
    finally
    {
        conn.Close();
    }
}

【问题讨论】:

  • 在 cmd.Parameters.AddWithValue("@fname", FirstNameTextbox.Text); 处设置断点。 stuID 的价值是什么?您的数据库中有这样的条目吗?还要检查@fname 的值。
  • 看起来像经典的“在所有页面加载中加载信息”问题。请编辑您的问题并将加载添加到控制代码中,并说明在哪些事件和条件下执行
  • 看看,不久前添加的
  • @hellogoodnight,stuID 将是数据库中的主键

标签: c# asp.net sql-server


【解决方案1】:

您在什么时候进行实际更新?按下按钮后,在文本框中输入值后......?您缺少放置处理更新的代码的方法... 也许这会有所帮助:How to display data from database into textbox, and update it

【讨论】:

  • 感谢 Danilo,这正是我正在寻找的解决方案类型。 #尊重
猜你喜欢
  • 1970-01-01
  • 2014-12-17
  • 2012-02-17
  • 1970-01-01
  • 1970-01-01
  • 2021-03-23
  • 2022-01-02
  • 1970-01-01
相关资源
最近更新 更多