生徒のファーストネームを更新しようとしていますが、テキストボックスの情報を変更して変更を書き込もうとすると、 "FirstNameTextbox"情報がDBからロードされましたそれは元のデータだけを読み込みます。もしそれがDBからの最初の名前として "Craig"をロードした場合、私は編集し、 "クリス"をテキストボックスに入れます。何が起こるかは、 "Chris"ではなくDBに書き込まれます。更新されたテキストボックス情報をDBに更新するC#
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
clasicのように見えます。「すべてのページ読み込みで情報を読み込む」問題です。あなたの質問を編集し、制御コードに読み込みを追加して、どのイベントと条件が実行されたかを説明してください – bradbury9
あまりにもずっと前にそれを追加しました –