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 不返回任何记录的主要内容,如果未能解决你的问题,请参考以下文章
C# 使用 SqlDataReader 从 SQL Server 检索数据到主详细信息列表
SqlDataReader 和 T-SQL:在使用来自 C# 的“异步”调用时使用“try...catch”和“throw”时不会传播异常
SqlDataReader C#,SQL Server 2005,VS 2008