SqlDataReader 使用 sql server 2008 不返回任何记录

Posted

技术标签:

【中文标题】SqlDataReader 使用 sql server 2008 不返回任何记录【英文标题】:SqlDataReader not returning any records with using sql server 2008 【发布时间】:2014-07-25 18:54:14 【问题描述】:

我的客户将他的 sql 服务器从 2000 年升级到 2008 年。似乎 sqldatareader 现在没有返回任何数据。我将这段代码放在 vb.net 中只是为了看看它可能是什么:

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    Dim myCommand1 As SqlCommand
    Dim myDataReader1 As SqlDataReader
    myConnection.Open()

    Dim strsql3 As String = "select * from table"

    myCommand1 = New SqlCommand(strsql3, myConnection)

    '''saw on a post to try this command; it didn't help either
    'myCommand1.ExecuteNonQuery()
    'executing the command and assigning it to connection

    myDataReader1 = myCommand1.ExecuteReader()
    MsgBox(myDataReader1.HasRows)

    While myDataReader1.Read()
        MsgBox("in the while")
    End While

    MsgBox("not in the while")

End Sub

即使数据库中有数据,它也没有得到任何数据。有其他人遇到过这种情况吗?

感谢您的帮助, 亚瑟

【问题讨论】:

您在该表中没有任何数据,或者您正在查看错误的数据库。经常发生。 你确定你真的连接到数据库吗?在代码中放置一个 Try/Catch 块以查看它是否引发错误。 SQL 数据阅读器应该适用于任何和所有 SQL 版本。 检查您的连接字符串并确认您正在连接到预期的服务器和数据库。 你说“数据库中有数据”。我假设您使用 SSMS 与您的代码中的相同查询来验证这一点。我会在myConnection.Open() 上设置一个断点,跨过并调查您的连接。它是否连接了您期望的 sql server 实例和数据库? 是的,我确认我使用了正确的连接。 【参考方案1】:

SQL Server 2000 没有实例名称 ex。 SERVER 其中大部分 SQL Server 2008 已安装实例名称为 ex。 SERVER\SQLEXPRESS 所以请检查您的连接字符串,因为您可能使用了错误的服务器名称。

【讨论】:

SQL Server 2000 可以安装为默认实例或命名实例。

以上是关于SqlDataReader 使用 sql server 2008 不返回任何记录的主要内容,如果未能解决你的问题,请参考以下文章

使用 SQLDataReader 读取 IP 地址

C# 使用 SqlDataReader 从 SQL Server 检索数据到主详细信息列表

SqlDataReader 和 T-SQL:在使用来自 C# 的“异步”调用时使用“try...catch”和“throw”时不会传播异常

SqlDataReader C#,SQL Server 2005,VS 2008

通过 CLR 的 SQLDatareader 没有以正确的方式返回 SQL 消息

vb.net访问sql server数据库(SqlDataReader和DataSet两种方式)