2017-03-15 4 views
1

Beim Versuch, den Vornamen des Schülers zu aktualisieren, wurde ein Textfeld "FirstNameTextbox" aus der DB geladen, wenn ich die Informationen im Textfeld ändere und versuche, die Änderungen zu schreiben es gelesen nur die ursprünglichen Daten. So wenn es "Craig" als der Vorname von der DB lud, würde ich redigieren und "Chris" in den Textkasten setzen, was geschieht, dass Craig in die DB und nicht "Chris"Update DB mit aktualisierten Textfeldinformationen in C#

geschrieben wird
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(); 
    } 
} 
+0

einen Haltepunkt an cmd.Parameters.AddWithValue gesetzt („@ fname“, FirstNameTextbox.Text) ;. Was ist der Wert von stuID? Gibt es einen solchen Eintrag in Ihrem db? Überprüfen Sie auch den Wert von @fname. – hellogoodnight

+1

Sieht aus wie clasic 'Problem in alle Seiten laden' Problem. Bitte bearbeiten Sie Ihre Frage und fügen Sie das Laden in den Steuercode, und erklären, in welchem ​​Ereignis und Bedingungen ausgeführt wird – bradbury9

+0

Werfen Sie einen Blick, fügte es vor nicht allzu langer Zeit –

Antwort

0

An welchem ​​Punkt machen Sie das eigentliche Update? Nachdem eine Taste gedrückt wurde, nachdem der Wert in der Textbox eingegeben wurde ...? Sie fehlt das Verfahren, in dem der Code, der die Update Griff platziert ... Vielleicht könnte dies helfen: How to display data from database into textbox, and update it

+0

Dank Danilo Das ist genau die Art von Lösung, nach der ich gesucht habe. #Respekt –

+0

Kein Problem Mann, froh, ich könnte helfen. Immer weiter programmieren! –