在C#中枚举表单上的记录

时间:2014-12-06 16:56:16

标签: c# database vb6 recordset

我是一个老的VB程序员,试图用C#构建一个应用程序。简单的想法,真的 - 只想拥有一个带有3个文本框(从数据库中填充)的俗气形式,以及两个按钮:Move Next和Move Previous。

在旧的VB6中,我在Form_Load事件上打开一个静态连接,然后打开一个记录集并填充我的文本框。我的“Move Next”和“Move Previous”按钮只会包含“rst.MoveNext”和“rst.MovePrevious”代码,以及类似[Textbox1.Text = rst(“Field1”)]的内容。然后,最后在Form的结束事件中,我会有类似cnn.close的内容。

从我读过的内容来看,这不是用C#做事的方法。由于连接池,静态数据库连接是禁忌。但这给我留下了一些空间:如何在没有静态记录集和数据库连接的情况下重新设计我的小C#应用程序?

如果我打开连接,在Load事件上将第一条记录加载到我的表单上(即:SELECT TOP 1 FROM MYTABLE),然后关闭连接,如何管理我的MoveNext和MovePrevious按钮?我应该重新打开连接,并以某种方式尝试查询表中的“Next Lower”或“Next Highest”主键吗?

或者我只是完全以错误的方式接近这个?

非常感谢任何帮助!!!

谢谢, 杰森

2 个答案:

答案 0 :(得分:1)

你想要做的是一个DataSet,你可以使用DataSourceWindow View-> Other Windows - >从你的数据库插入一个。数据源视图, 使用DataSet,您可以拖放字段,并使用实用程序BindingSource Navigator 请查看此链接How to Set Up and DataSet

答案 1 :(得分:1)

在VB6中,框架试图以非常具体的方式为您完成大量工作。通过.NET Framework,他们意识到使用记录集完成的方式并不适合每个人的需要,因此他们通过使用不同的数据访问模式实现为开发人员提供了更多控制。正如Patrick提到的那样,DataSet就是其中之一,但是还有LINQ way of doing it

您还可以加载一个缓冲区并使用下一个缓冲区导航它,然后在(如果)到达该缓冲区的末尾时加载更多。