2011-08-06 169 views
0
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
{ 

    SqlConnection con = new SqlConnection(" Data Source=SYS022\\SQLEXPRESS;Initial Catalog=Bhagavan;Integrated Security=True"); 
    con.Open(); 
    SqlCommand cmd = new SqlCommand("select * from emp3", con); 
    SqlDataReader dr = cmd.ExecuteReader(); 
    while (dr.Read()) 
    { 



      txt_eid.Text = dr["eid"].ToString(); 
      txt_ename.Text = dr["ename"].ToString(); 
      txt_sal.Text = dr["esal"].ToString(); 


    } 

我的應用程序包含3個texboxes和GridView中只有一行[GridView控件]如果我點擊編輯鏈接在GridView(3個COLOUMNS)所推崇的行式顯示在3 textBOXES.my碼正在工作,就好像我點擊編輯按鈕,它顯示在文本框中的最後一個記錄的gridview ..可以說有什麼問題(這裏我從數據庫連接到gridview)請說這個代碼中的錯誤。我知道另一種編輯方式..請幫助我。 標記代碼只顯示在文本框

+0

你能顯示你的標記(aspx頁面)嗎?從你的描述來看,這聽起來像你的代碼正在做你剛剛告訴它做的事 - 它用DataRow中的三個值填充三個TextBox。請注意,如果您有多行,最後一行將顯示在TextBox中。 – Tim

回答

0

您是否需要將ID傳遞給您的sql語句,以便編輯您要編輯的特定行?換句話說,這樣的:

SqlCommand cmd = new SqlCommand("select * from emp3", con); 

似乎需要改變到這樣的:

SqlCommand cmd = new SqlCommand("select * from emp3 where id="+GridView1.Rows[e.NewEditIndex].Cells[0].Text, con); 

其中細胞[0]保持值 「EID」;

實際上,它總是在gridview中顯示最後一條記錄的原因是因爲它經過emp3表中所有記錄的while循環,因爲您正在執行select *而不是從select * select * from emp3 EID = [some_specific_id];

+0

@伊卡洛斯謝謝你.. – hetric

+0

@ hetric歡迎您。它有用嗎? – Icarus