如何解决如何在 WinForms DataGridView 窗口中逐行迭代我的数据库
我希望我的方法能够通过单击带有 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 举报,一经查实,本站将立刻删除。