在TableAdapter.Fill之后,BindingSource不会使用MoveNext()移动到下一条记录

时间:2016-11-03 17:28:20

标签: c# sql winforms bindingsource tableadapter

我点击下面的按钮点击此事件:

private void button4_Click(object sender, EventArgs e)
{
    string connectionString2 = "Data Source=LPMSW09000012JD\\SQLEXPRESS;Initial Catalog=Pharmacies;Integrated Security=True";
    string query2 = "UPDATE Liguanea_Lane2 SET Progress= '1' where code = '" + comboBox2.Text + "'; ";
    using (SqlConnection connection = new SqlConnection(connectionString2))
    {
        SqlCommand command = new SqlCommand(query2, connection);
        command.Connection.Open();
        command.ExecuteNonQuery();
    }
    comboBox2.ResetText();
    textBox1.Clear();
    comboBox2.SelectedIndex = comboBox2.SelectedIndex + 1;
    this.liguanea_Lane2TableAdapter.Fill(this.pharmaciesDataSet3.Liguanea_Lane2);
    liguaneaLane2BindingSource.MoveNext();
}

问题在于这个特殊的代码块:

this.liguanea_Lane2TableAdapter.Fill(this.pharmaciesDataSet3.Liguanea_Lane2);
liguaneaLane2BindingSource.MoveNext();

它正在做的基本上是刷新数据网格中的数据源并移动到表格中的下一个项目。例如,点击按钮后,它会更新"进度"列值为" 1"然后刷新数据集,然后调用.MoveNext将光标移动到表中的下一个项目。它工作但只执行一次然后停止移动。数据集刷新正常,但.MoveNext是问题。我尝试将其移动到数据集上方,但之后它不会执行问题。我做错了什么?

1 个答案:

答案 0 :(得分:1)

当您致电<marquee><a href="#" style="font-size:24px"><img src="hp.jpg" width="134" height="202" style="float:left;padding-right:10px;" alt=""></a></marquee> 时,它会导致绑定到TableAdapter.Fill(Table)的{​​{1}}移至第一条记录。因此,在填充表格后调用BindingSource始终会移至第二条记录。

如果出于任何原因想要在使用表适配器填充表后移动到下一条记录,请在填充前存储当前位置,并在填充后将位置设置为下一条记录:

Table