【问题标题】:Add/Remove value to/from the dropdown Datasource on insert/delete value into/from the database table添加/删除值到/从下拉数据源中插入/删除值到/从数据库表中
【发布时间】:2014-01-22 09:47:20
【问题描述】:

我的网页上有一个绑定到 sqlDataSource 的下拉列表。我们经常从数据库中添加/删除列的值。当我插入一个新值时,它应该立即出现在下拉列表中,一旦我从数据库中删除该值而不使用刷新选项/javascript 的 location.reload();,就应该从下拉列表中删除该值。我尝试了以下方法将值添加到下拉列表中。

pr1.aspx:

<asp:DropDownList ID="DropDownList1" runat="server"  DataTextField="dropval" DataValueField="dropval" Height="31px">
        </asp:DropDownList>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:VBTestConnectionString %>" SelectCommand="SELECT [dropval] FROM [pbs]"></asp:SqlDataSource> 

pr1.aspx.cs:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
          SqlConnection con = new SqlConnection("Server=(local)\\SQLEXPRESS;Database=pbs;User Id=sa;Password=****;");
           con.Open();
            SqlCommand cmd = new SqlCommand("select dropval from pbs", con);
            SqlDataAdapter dtAdapter = new SqlDataAdapter(cmd);
            DataTable dt= new DataTable();
            dtAdapter.Fill(dt);
            DropDownList1.DataSource = dt;
            DropDownList1.DataTextField = "dropval";
            DropDownList1.DataValueField = "dropval";
            DropDownList1.DataBind();
            DropDownList1.Items.Insert(0, new ListItem("select", "0"));
         }

        }

我没有遇到任何错误,但这不起作用。一旦我在数据库中添加新值(刷新页面后能够看到),就不会将值添加到下拉列表中。我使用 SQL Server Management Studio 将值插入到数据库中。

【问题讨论】:

  • 为什么不将值添加到数据表中,然后再将其分配给下拉列表
  • 我怎么能在这里做到这一点,我直接向数据库添加值而不使用任何代码。
  • DataRow 行 = dt.NewRow(); row["dropal"] = "select" dt.Rows.Add(row); DropDownList1.DataSource = dt; DropDownList1.DataBind();如果您想插入第一个位置,请使用 dt.Rows.InsertAt(row, 0);
  • 以上是将字符串值("select" here)添加到列表中,而不是我添加到数据库表中的值。

标签: c# asp.net sql


【解决方案1】:

尝试调用以下代码

SqlConnection con = new SqlConnection("Server=(local)\\SQLEXPRESS;Database=pbs;User Id=sa;Password=****;");
           con.Open();
            SqlCommand cmd = new SqlCommand("select dropval from pbs", con);
            SqlDataAdapter dtAdapter = new SqlDataAdapter(cmd);
            DataTable dt= new DataTable();
            dtAdapter.Fill(dt);
            DropDownList1.DataSource = dt;
            DropDownList1.DataTextField = "dropval";
            DropDownList1.DataValueField = "dropval";
            DropDownList1.DataBind();
            DropDownList1.Items.Insert(0, new ListItem("select", "0"));

在event 处,您正在向/从databse 添加/删除值。基本上你必须将dropdown list 重新绑定到数据库中的最新值。

【讨论】:

  • 我没有使用任何代码来插入/删除值。我正在使用 SSMS 进行操作。
  • @M.K 您的 .net 应用程序将如何知道帽子数据已更改,您必须以某种方式通知应用程序
  • 有没有办法告诉应用程序始终获取更新的表。
  • 可以在asp.net中使用sql缓存依赖
猜你喜欢
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
  • 2019-07-26
  • 1970-01-01
  • 2012-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多