我有一个数据表被填充,但其中一个字段是一个从数据库连接派生的下拉列表。当我单击添加它时,尽管我选择了它,但总是添加相同的数据,然后删除列表中的第一个项目。
ASPX代码
<asp:TableCell><asp:DropDownList runat="server" ID="txtProduct"></asp:DropDownList></asp:TableCell>
下拉列表的CS代码
public void Fill1()
{
string connectionString = WebConfigurationManager.ConnectionStrings["CRM2Sage"].ConnectionString;
using (SqlConnection _con = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand("SELECT * FROM Products", _con))
{
cmd.Connection.Open();
SqlDataReader ddlValues;
ddlValues = cmd.ExecuteReader();
txtProduct.DataSource = ddlValues;
txtProduct.DataValueField = "Description";
txtProduct.DataTextField = "Description";
txtProduct.DataBind();
cmd.Connection.Close();
cmd.Connection.Dispose();
}
}
有关如何解决这个问题的想法吗?
答案 0 :(得分:1)
我认为你在页面加载中调用了Fill1()
方法。当页面为PostBack时,再次调用页面加载事件Fill1()
,您的选择将被清除。你需要在你的加载事件
if(!Page.IsPostBack)
{
Fill1();
}
答案 1 :(得分:0)
我认为您缺少SQL语句的WHERE部分以及将DropDownList选择连接到SQL Statment的方法。有点像...
new SqlCommand("SELECT * FROM Products WHERE ProductID = " + txtProduct.SelectedValue , _con))
仅供参考:这只是为了说明,我绝不会在一行代码中放两个步骤,我会使用参数,我会添加一小部分错误检查。