【发布时间】:2013-08-06 16:46:27
【问题描述】:
很抱歉,如果以前有人问过这个问题,我已经尝试使用谷歌,但所有答案都无法帮助我。
我是使用数据集和使用 c# 连接数据库的初学者。我有一个数据集 usersDataset 从一个 access 2007 数据库中获得,该数据库有两个表 Administrators 和 Users。两个表都有两列 UserName 和 Password。 Administrators Table 有一行数据。
现在的问题是我想检索数据集中的行。我尝试了很多东西,但它们都抛出异常。
我试过了
DataRow rows = usersDataset1.Administrators.Rows[0];
MessageBox.Show(rows.ToString());
也试过了
usersDataset data = new usersDataset();
MessageBox.Show(data.Administrators.Rows[0].ToString());
也试过了
MessageBox.Show(usersDataset1.Tables[0].Rows[0].ToString());
以下所有代码 sn-ps 都会抛出 IndexOutofRangeException 和消息 There is no Row at Index 0。
然后我尝试了
MessageBox.Show(usersDataset1.Administrators.Rows.Count.ToString());
它显示“0”。
请问我做错了什么,我该如何纠正?
编辑: 当我将管理员从 DataSources Windom 拖到窗体并运行应用程序时。显示该行。
【问题讨论】:
-
Administrators 表没有任何行。你需要检查一下。
-
设置断点并确保管理员表中有任何行。
-
您是否有一段代码可以连接到数据库并在尝试从中获取数据之前填充数据集?我们能看到吗?
-
@nhrobin 我确定其中有一行。我已经使用它在 DataSources 窗口中预览了它
-
@DanielGabriel No. 在使用服务器资源管理器连接到数据库之前,我已经将该行添加到数据库中