问题描述
我希望我的方法能够通过单击带有 MoveNext() 方法的按钮在 DataGridView 上一行一行地显示。使用下面的这段代码,它只能部分工作。当我点击按钮时,我总是只得到 id 为 1 的行,而不是遍历表。我知道这是因为“_position”变量的值始终为“1”,即使我在方法上设置了 position++。我尝试应用迭代设计模式,但我真的不知道如何在数据表上使用它(只知道如何在列表上使用它)并且它对我不起作用。
public class AlphabeticalOrderIterator : Iterator
{
sqlConnection Con = new sqlConnection(@"Data Source=(LocalDB)\MSsqlLocalDB;AttachDbFilename=C:\Users\****\Documents\Hoteldb.mdf;Integrated Security=True;Connect Timeout=30");
private int _position = 1;
public override void MoveNext(DataGridView grid)
{
Con.open();
string Myquery = "select * from Client_tbl where ClientId = '" + _position + "' ";
_position++;
sqlDataAdapter da = new sqlDataAdapter(Myquery,Con);
sqlCommandBuilder cbuilder = new sqlCommandBuilder(da);
var ds = new DataSet();
da.Fill(ds);
grid.DataSource = ds.Tables[0];
for (int i = 0; i < grid.Columns.Count - 1; i++)
{
grid.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
}
grid.Columns[grid.Columns.Count - 1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
for (int i = 0; i < grid.Columns.Count; i++)
{
int colw = grid.Columns[i].Width;
grid.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
grid.Columns[i].Width = colw;
}
Con.Close();
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)