c#DataTable从表中添加数据

时间:2011-03-30 16:07:36

标签: c# asp.net

我有一个数据表被填充,但其中一个字段是一个从数据库连接派生的下拉列表。当我单击添加它时,尽管我选择了它,但总是添加相同的数据,然后删除列表中的第一个项目。

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();
    }
}

有关如何解决这个问题的想法吗?

2 个答案:

答案 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))

仅供参考:这只是为了说明,我绝不会在一行代码中放两个步骤,我会使用参数,我会添加一小部分错误检查。