如何在 Windows 窗体应用程序 C# 中导航数据库
本文关键字:导航 数据库 应用程序 窗体 Windows | 更新日期: 2023-09-27 18:33:27
我有一个简单的 c# 应用程序,它显示来自访问数据库的数据
private void DisplayRow(int rowIndex)
{
// Check that we can retrieve the given row
if (myDataTable.Rows.Count == 0)
return; // nothing to display
if (rowIndex >= myDataTable.Rows.Count)
return; // the index is out of range
// If we get this far then we can retrieve the data
try
{
DataRow row = myDataTable.Rows[rowIndex];
SurnametextBox.Text = row["Surname"].ToString();
FirstNametextBox.Text = row["Firstname"].ToString();
PhonetextBox.Text = row["Phone"].ToString();
ContactTypetextBox.Text = row["ContactType"].ToString();
}
catch (Exception ex)
{
MessageBox.Show("Error in DisplayRow : 'r'n" + ex.Message);
}
}
现在它显示了数据库中的第一条记录,就是这样,我有下一个和后退按钮来单击数据,但是需要什么代码来显示下一条记录?
创建一个类变量,以便您可以记住当前拥有的行索引。因此,当您单击"下一步"时,将 +1 添加到此变量中,并在按 PREVIOUS 时从中减去 (-1)。并在之后使用该变量。
class Form1
{
int counter;
void ButtonForth_Click()
{
counter++;
YourMethod();
}
void ButtonBack_Click()
{
counter--;
YourMethod();
}
void YourMethod()
{
DataRow row = table.Rows[counter];
// more code...
}
}
RhysW:感谢指出这一点。我只是简单地展示了模式代码的基础知识。当然,有很多事情要做才能使其顺利运行。
这是大约可以完成的方法:
class Form1
{
int counter;
DataTable table; //class variable so we can access to the reference from all over the class
void ButtonForth_Click()
{
if(counter < table.Rows.Count)
counter++;
YourMethod();
}
void ButtonBack_Click()
{
if(counter > 0)
counter--;
YourMethod();
}
void YourMethod()
{
DataRow row = table.Rows[counter];
if(row.Count > 0 )
{
SurnametextBox.Text = row["Surname"].ToString();
FirstNametextBox.Text = row["Firstname"].ToString();
PhonetextBox.Text = row["Phone"].ToString();
ContactTypetextBox.Text = row["ContactType"].ToString();
}
//no need of try, catch block, is there are all the names correct (textobxes, and columns of datatable)
}
}
确保在调用此函数之前 rowIndex 递增。否则,代码看起来不错。