[英]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.