2010-12-16 5 views
0

私は同様の投稿を見ましたが、一部は明確ではありませんでした。ここでASP.NETリピータ - ボタン送信時のデータを更新する方法

はリピーターヘッドです:

<asp:Repeater ID="rptGetAll" OnItemCommand="Buttons_OnItemCommand" runat="server" OnLoad="rptGetAll_Load"> 

私はボタンがあります。

<asp:Button ID="Submit" runat="server" OnClick="Submit_Click" Text="Save" /> 

を、私はコードビハインドデータベースの挿入/更新データを持っているし、私が設定:

using (SqlConnection con = new SqlConnection(conString)) 
      { 
       con.Open(); 
       using (SqlCommand cmd = new SqlCommand("administratorUpdate", con)) 
       { 
        cmd.Parameters.Add("@originalID", SqlDbType.VarChar).Value = hfID.Value; 
        cmd.Parameters.Add("@firstName", SqlDbType.VarChar).Value = MyGlobals.SafeSqlLiteral(txtFirstName.Text, 2); 
        cmd.Parameters.Add("@lastName", SqlDbType.VarChar).Value = MyGlobals.SafeSqlLiteral(txtLastName.Text, 2); 
        cmd.Parameters.Add("@userName", SqlDbType.VarChar).Value = MyGlobals.SafeSqlLiteral(txtUserName.Text, 1); 
        cmd.Parameters.Add("@emailAddress", SqlDbType.VarChar).Value = MyGlobals.SafeSqlLiteral(txtEmailAddress.Text, 2); 
        cmd.Parameters.Add("@password", SqlDbType.VarChar).Value = MyGlobals.SafeSqlLiteral(txtPassword.Text, 1); 
        cmd.Parameters.Add("@isActive", SqlDbType.VarChar).Value = cbIsActive.Checked; 
        cmd.CommandType = CommandType.StoredProcedure; 
        cmd.ExecuteNonQuery(); 
       } 
       con.Close(); 
      } 
      rptGetAll.DataSource = dt; 
      rptGetAll.DataBind(); 

      //Output Success Message 
      Label lblErrorMessage = (Label)Master.FindControl("lblErrorMessage"); 
      new MyGlobals().DisplayUserMessage("success", "Administrator Updated!", lblErrorMessage); 
      AdminForm.Visible = false; 

しかし、ページが完了すると、データは更新されません。私は何が欠けていますか?

UPDATE: これはRepeater_Loadです:あなたは以前満たされたDataTable dtをしてリピータを結合しているこの

cmd.Parameters.Add("@originalID", SqlDbType.VarChar); 
cmd.Parameters["@originalID"].Value = hfID.Value; 
+0

rptGetAll_LoadとSubmit_Clickからコードを投稿できますか?あなたがデータバインドする前に、あなたは何のデータソースを設定していますか? –

+0

@Abe私はOnLoadイベントとOnClickを追加しました – balexander

+0

それは本当にすべてのオンクリックではありませんか? – jcolebrand

答えて

1

のようなあなたのパラメータ値を追加するとき

protected void rptGetAll_Load(object sender, EventArgs e) 
{ 
    DataTable dt = new DataTable(); 
    using (SqlConnection con = new SqlConnection(conString)) 
    { 
     using (SqlCommand cmd = new SqlCommand("administratorGetAll", con)) 
     { 
      using (SqlDataAdapter da = new SqlDataAdapter(cmd)) 
      { 
       da.Fill(dt); 
      } 
     } 
    } 
    rptGetAll.DataSource = dt; 
    rptGetAll.DataBind(); 
} 
0

は異なるアプローチを試してみてください。最新のデータでデータテーブルを補充し、保存ボタンをクリックしてリピータにバインドします。

+0

このエラーが発生しました 'このSqlParameterCollectionでは、' @emailAddress 'というParameterNameを持つSqlParameterが含まれていません。'他のパラメータに適用した場合 – balexander

+0

@ Bry4nすべてのパラメータ名が正しいことを確認しましたか? – hallie

+0

はい、私はそれが働く前の方法 – balexander

関連する問題