【问题标题】:Editing contents of a listbox that is populated by a sql query datasource using c#使用 c# 编辑由 sql 查询数据源填充的列表框的内容
【发布时间】:2013-08-08 08:43:57
【问题描述】:

我有一个由查询结果集填充的列表框,我希望用户能够编辑列表框的内容,并更新数据库后端,我该如何实现?

public Brand_Manager(Main parent)
{
SqlConnection conn = new     SqlConnection(ConfigurationManager.ConnectionStrings["SqlConn"].ConnectionString.ToString());
        SqlCommand cmd = new SqlCommand("select Brand_ID, Brand_Name from Brand where status=1", conn);
        conn.Open();
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable t = new DataTable();
        da.Fill(t);
        listBox1.DisplayMember = "Brand_Name";
        listBox1.DataSource = t;
        listBox1.ValueMember = "Brand_ID";

        conn.Close();
}
 private void Edit_Button_Click(object sender, EventArgs e)
    {
        this.Edit_Button.Enabled = false;
        object item = listBox1.SelectedItem;
         Edit_Brand frm = new Edit_Brand();
        this.AddOwnedForm(frm);
        frm.ShowDialog();

    }

【问题讨论】:

    标签: c# sql listbox datasource edit


    【解决方案1】:

    您使用 WPF 还是 WinForms?无论如何,您需要调查Bindings:WinForms 中的BindingSource 或WPF 中的Binding 类(http://msdn.microsoft.com/en-us/library/ms750612.aspx)。

    【讨论】:

    • 不能快速帮助您,因为我很长时间不使用 WinForms,抱歉。但是 Bindings 是您需要检查的情况。
    【解决方案2】:

    查看 DataTable 事件 http://msdn.microsoft.com/en-us/library/system.data.datatable_events.aspx 。有 RowChangedEvent。在其处理程序中调用 update sql 命令。

    【讨论】:

      【解决方案3】:

      为此,您需要使用 datagridview。它是为此目的而设计的。您可以将数据源分配给 gridview 并允许用户编辑行。然后通过处理行编辑事件或提供按钮,您可以更新数据库。查看示例here

      【讨论】:

      • 您是否介意演示一下如何使用 datagridview 来实现这一点,您是说它不可能使用列表框吗?感谢您的帮助。
      • 好吧,我不会说列表框不可能,但不能开箱即用。将 gridview 拖到您的表单中,为其分配此数据源。在此处查看详细信息dotnetfunda.com/forums/…
      猜你喜欢
      • 2014-05-11
      • 2019-08-28
      • 1970-01-01
      • 2012-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 2021-02-13
      相关资源
      最近更新 更多