【问题标题】:Converting SQLDataReader to String in VB.Net在 VB.Net 中将 SQLDataReader 转换为字符串
【发布时间】:2010-10-29 21:59:45
【问题描述】:

我正在从数据库返回一行,我想将 SQLDataReader 转换为字符串格式,以便将其传递给我的 web 服务。

        Dim rdr As SqlDataReader = sqlcmd.ExecuteReader

        If rdr.HasRows Then
            rdr.Read()
            GetInvHeaderValue = Convert.ToString(rdr.Read())
            Return GetInvHeaderValue
        Else
            GetInvHeaderValue = "<ERR>No Records Returned</ERR>"
        End If

如何将 SQLDataReader 转换为字符串?

有更好的选择吗?

【问题讨论】:

  • 多一点信息会很有用,比如返回什么数据?是标量吗?是否需要所有行信息?
  • 不知道我理解你所说的“什么”数据被返回是什么意思?该行包含大约 8 个字段。记录集只返回一条记录。它不是标量(第一行的第一列)。我需要返回所有字段。 HTH

标签: vb.net .net-2.0 sqldatareader


【解决方案1】:

rdr.Read() 将 DataReader 移动到下一条记录,如果有下一条记录则返回。所以你可以写:

Dim GetInvHeaderValue As Object
While rdr.Read()
   GetInvHeaderValue  = rdr(0)'if this value is in Column-Index 0'
   GetInvHeaderValue  = rdr("GetInvHeaderValue")'if a Column with this name exists'
   GetInvHeaderValue  = rdr.GetString(0)'returns a String representation(there are getter for all common types)'
End While

您只是将指示是否有下一条记录的布尔值转换为字符串(“True”/“False”)。

查看MSDN 了解更多信息。

【讨论】:

  • 所以您是说我必须单独读取每个字段,而不是将整行转换为字符串格式?我的最终目标是将该记录传递给我的 Web 服务,它会将结果以 XML 格式返回给客户端。
  • 将整行作为字符串返回是没有意义的。使用 Linq、Dataset.ReadXML 或自定义类。也许这个链接有帮助:forums.asp.net/p/1587381/4013756.aspx
猜你喜欢
  • 1970-01-01
  • 2017-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
相关资源
最近更新 更多