以下是我一直在关注的一些背景。
http://www.homeandlearn.co.uk/csharp/csharp_s12p9.html
它将转到数据库的最后一条或第一条记录。我想跳转到access数据库中的一个记录,用户需要在文本框中输入id号,然后在文本框中输入正确的行。
我想我可以从上面的网站使用这个代码。我已经实现了从上面的网站上的一切。
全局变量
int inc = 0;
导航记录,稍后我将在跳过按钮中调用
private void NavigateRecords()
{
DataRow dRow = ds1.Tables["Laptops"].Rows[inc];
txtMaker.Text = ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(1).ToString();
txtModel.Text = ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(2).ToString();
txtPrice.Text = ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(3).ToString();
txtBids.Text = ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(4).ToString();
txtScreen.Text = ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(5).ToString();
txtCPU.Text = ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(6).ToString();
txtMemory.Text = ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(7).ToString();
txtHD.Text = ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(8).ToString();
picLaptops.Image = Image.FromFile(ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(9).ToString());
}
我的跳过按钮到目前为止…
private void btnSkip_Click(object sender, EventArgs e)
{
NavigateRecords();
}
我很难做到这一点。我知道我想要什么,但缺乏做这件事的技能。这很令人沮丧。我不知道该怎么办。
如果有人能解决它,并给我看代码,我就可以理解它,并在其他地方使用它。
下面是下一个按钮的示例,如果有帮助,则转到下一个记录。
private void btnNext_Click(object sender, EventArgs e)
{
if (inc != MaxRows - 1)
{
inc++;
NavigateRecords();
}
else
{
MessageBox.Show("You have reached the end of available items", "End of Available Items", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
最佳答案
使用数据绑定,而不是手动为控件分配值。
创建模型类
public class MyClass
{
public string Maker { get; set; }
public double price { get; set; }
// and so on, for all your fields
}
在visual studio的“数据源”资源管理器中为myclass添加对象数据源。
将数据源中的字段拖到表单中。visual studio会自动将bindingSource和bindingNavigator添加到表单中。
以以下形式将数据分配给BindingSource:
this.bindingSource1.DataSource = myData;
其中mydata是myClass对象的一些枚举。
对于数据库源也可以这样做。但就我个人而言,我更喜欢把数据放在课堂上。比直接操作数据集或表单字段更容易处理。
关于c# - 跳到C#中的数据库记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8371996/