第二版
我正在使用以下代码填充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";
}
我使用它来删除(用值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
的最佳方法是什么?我试过重置绑定没有成功。我只需要刷新数据集或列表框。
答案 0 :(得分:0)
我可能会完全误解你的问题,但这可能会更好:
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()
会发生什么。
答案 1 :(得分:0)
我已经解决了刷新列表框,再次加载数据集的问题,
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();
我喜欢使用dispose和refresh,但这样工作。