繁体   English   中英

填充了DataSet的ListBox不会更新

[英]ListBox populated with DataSet doesn't update

第二版

我使用以下代码填充ListBox

private BindingSource sri = new BindingSource();

public void sola()
{
    sri.DataSource = llenar.Tables["tipoender"];
    listBox1.DataSource = sri;
    listBox1.ValueMember = "end_tipoendereco";
    listBox1.DisplayMember = "tpl_descricao";
}

我将其用于DELETE(将确定的列的值更新为2),当列ID_tipoauditoria的值= 2时,记录未加载。 该代码有效

DataSet grava = new DataSet();
SqlDataAdapter da4 = new SqlDataAdapter();
SqlCommandBuilder constru8 = new SqlCommandBuilder(da4);
SqlParameter codi = new SqlParameter("@emp", SqlDbType.Int);
codi.Value = codem;
SqlCommand llena10 = new SqlCommand("dmlpjende", conec1);
llena10.Parameters.Add(codi);
llena10.CommandType = CommandType.StoredProcedure;
da4.SelectCommand = llena10;
da4.Fill(grava, "endere");
DataRow dr2 = grava.Tables["endere"].Rows[ni];
// listBox1.BackColor = Color.Red;
dr2.BeginEdit();
dr2["id_tipoauditoria"] = 2;
dr2.EndEdit();
da4.Update(grava.Tables["endere"]);

刷新ListBox的最佳方法是什么? 我尝试重置绑定失败。 我只需要刷新数据集或列表框。

我可能会完全误解您的问题,但这可能会更好:

public void sola()
{
    sri.DataSource = llenar.Tables["tipoender"];
    listBox1.DataSource = sri;
    listBox1.ValueMember = "end_tipoendereco";
    listBox1.DisplayMember = "tpl_descricao";
    listBox1.DataBind(); // this was missing
}

特别是我添加的最后一行,用于实际的数据绑定。 这样可以解决您的问题吗? 如果没有,那么如注释中所建议的那样之后调用listBox1.Refresh()会发生什么。

我已经解决了刷新列表框,再次加载数据集的问题,

    public void cargill()
    {
        campo = "60435351000319";
        llenar = ifd.consulta_cnpj(campo);
        sola();
    }

    public void sola()
    {
        sri.DataSource = llenar.Tables["tipoender"];
        listBox1.DataSource = sri;
        listBox1.ValueMember = "end_tipoendereco";
        listBox1.DisplayMember = "tpl_descricao";
    }

          DataSet grava = new DataSet();
            SqlDataAdapter da4 = new SqlDataAdapter();
            SqlCommandBuilder constru8 = new SqlCommandBuilder(da4);
            SqlParameter codi = new SqlParameter("@emp", SqlDbType.Int);
            codi.Value = codem;
            SqlCommand llena10 = new SqlCommand("dmlpjende", conec1);
            llena10.Parameters.Add(codi);
            llena10.CommandType = CommandType.StoredProcedure;
            da4.SelectCommand = llena10;
            da4.Fill(grava, "endere");
            DataRow dr2 = grava.Tables["endere"].Rows[ni];
            dr2.BeginEdit();
            dr2["id_tipoauditoria"] = 2;
            dr2.EndEdit();
            da4.Update(grava.Tables["endere"]);
            cargill();        

我喜欢使用配置和刷新,但是这种方式有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM