SqlCeDataReader Read ();反复迭代若干次

本文关键字:迭代 Read SqlCeDataReader | 更新日期: 2023-09-27 17:51:21

我正在使用SQL Server精简版编程一个应用程序,其中我的程序从某个地方插入一些数据到本地数据库。我的数据库表有这样的列:username, enterdate, exitdate. ..等等。

现在我正试图读取我的数据的特殊行,然后将该行添加到列表视图,但是当我使用SqlCeDataReader及其Read();方法时,它将重复的项目添加到我的列表视图。例如,如果我需要的行是在数据库的第9个索引,我的意思是,当我想要的行,例如在我的数据库的第9行,当我使用WHERE SELECT它,然后我读它,它添加了9个重复的项目与相同的行数据,我需要我的列表视图。

我使用的是Microsoft Visual Studio 2008 Express Edition。

Con.ConnectionString = "data source = |datadirectory|''RoomDataBase.sdf";
Con.Open();
cmd.Connection = Con;
cmd.CommandText = "SELECT * FROM room WHERE username = '" + user + "'";
SqlCeDataReader reader1 = cmd.ExecuteReader();
if (reader1.Read() )
{
       dblogger(user + " Entered and WAS in list");
       //my problem happens here that the above line iterates
}

dblogger是一个void,用于将字符串添加到列表视图

实际上我的问题是if{....}的内部迭代迭代到数据库中的行数

我必须告诉你,当我使用WHERE从数据库中SELECT数据时,我确信只有一行符合标准,所以要确定一切,问题来自Read()过程。

我必须提到你,这个问题要么发生在我使用SqlCeResultSet,然后使用ReadFirst();

特别感谢那些知道答案的人

SqlCeDataReader Read ();反复迭代若干次

您正在错误地使用数据阅读器。read方法用于将DataReader推进到下一行。HasRows属性,它会告诉你是否返回了任何结果。

尝试以下操作:

     if (reader1.HasRows)
     {
         dblogger(user + " Entered and WAS in list");
     }