1

我必须将更改审核到数据库中。在大多数页面上,这都很完美,因为只有文本框 - 但是在我现在正在处理的页面上,使用下拉列表,我的代码不起作用。

<td>
  <asp:DropDownList ID="DropDownList4" runat="server" DataSourceID="SqlDatacountry" DataTextField="country_name" DataValueField="country_id">
  </asp:DropDownList>

  <asp:SqlDataSource ID="SqlDatacountry" runat="server"  ConnectionString="<%$ ConnectionStrings:songtypecons %>" SelectCommand="SELECT * FROM [country_detail]"></asp:SqlDataSource>
</td>

后面的代码:

string sql1 = "selectcust_fname,cust_mname,cust_lname,cust_birthdate,cust_gender,cust_address,cust_contact_num,cust_country,cust_state,cust_city,cust_zip from cust_detail where cust_id ='" + ds.Tables["filldata"].Rows[0].ItemArray[0].ToString() + "' ";
            SqlDataAdapter adpt1 = new SqlDataAdapter(sql1, con);
            DataSet ds1 = new DataSet();
            adpt1.Fill(ds1, "custdata");
            if (ds1.Tables["custdata"].Rows.Count > 0)
            {

             for (int d = 0; d < DropDownList4.Items.Count; d++)
            {
               if (ds1.Tables["custdata"].Rows[0].ItemArray[7].ToString() == DropDownList4.Items[d].Text)
              {
                   DropDownList4.Items[d].Selected = true;
                   break;
               }
           }
        }
4

1 回答 1

1

如果我清楚地理解您的问题,您只需要在您的ListControl.SelectedIndexChanged活动中使用您的代码。

当列表控件的选择在发送到服务器的帖子之间发生变化时发生。

<asp:DropDownList ID="DropDownList4" runat="server" AutoPostBack="True" 
        onselectedindexchanged="DropDownList4_SelectedIndexChanged" ...>
</asp:DropDownList>

protected void DropDownList4_SelectedIndexChanged(object sender, EventArgs e)
{
  ...
}

正如我在评论中所写,您应该始终在您的 sql 命令中使用参数化查询,您的代码对SQL 注入攻击是开放的。

于 2013-04-15T06:58:27.543 回答