如果您在 page_load 中绑定 DDL,则每次加载页面时都会绑定。因此,在快速猜测您的代码时,您所要做的就是添加一个 if 语句来检查 page.isPostback
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ddlDemo.DataSource = new string[] { "asdf", "jklö" };
ddlDemo.DataBind();
}
}
protected void btnDemo_Click(object sender, EventArgs e)
{
Debug.WriteLine(ddlDemo.Text);
SqlConnection con = null;
using (con = new SqlConnection("YOUR CON STRING"))
{
SqlCommand com = new SqlCommand( "update tblXYZ set ABC = @A", con);
SqlParameter param = new SqlParameter("A", System.Data.SqlDbType.YOURTYPE);
param.Value = ddlDemo.Text;
com.Parameters.Add(param);
con.Open();
int affectedRows = com.ExecuteNonQuery();
Debug.WriteLine(affectedRows + " affected!");
con.Close();
}
}
在这个 aspx 页面中
<body>
<form id="form1" runat="server">
<asp:DropDownList ID="ddlDemo" runat="server">
</asp:DropDownList>
<asp:Button ID="btnDemo" runat="server" Text="Button" onclick="btnDemo_Click" />
</form>
</body>
无论如何,在使用它更新/插入/删除任何数据库记录之前,您应该始终检查用户输入!