【发布时间】:2016-11-17 16:48:44
【问题描述】:
使用 ASP.Net 应用程序,我想使用 SQLDataReader 从 SQL 数据库中提取 IPv4 信息。从 SQL 读取 IP 时,数据类型是二进制的,我不确定处理这个问题的最佳方法。
由于没有 SQLDataReader.GetIPAddress() 的方法,看来我需要使用 SQLDataReader.GetBytes()?网上有很多关于如何做到这一点的例子,但是由于 getstring 非常简单,我希望有另一种更简单的方法来使用 getbyte() 或另一种方法来引入 IP。
Do While SQLReader.Read()
Dim lastcom As System.DateTime = SQLReader.GetDateTime(0)
Debug.WriteLine(lastcom.ToString("MM/dd/yyyy HH:mm:ss.fff"))
Debug.WriteLine(SQLReader.GetString(1))
Debug.WriteLine(SQLReader.GetBoolean(2))
Debug.WriteLine(SQLReader.GetString(3))
Debug.WriteLine(SQLReader.GetString(4))
Label_IP = SQLReader.GetString(1)
Label_Model.Text = SQLReader.GetString(4)
Loop
【问题讨论】:
-
您是否正在尝试将其转换为 C#?存储在数据库中的 IP 是什么,我假设它将存储为
String,例如varchar或nvarchar。 -
无需转换为 c#。我通常在 vb.net 中编写。Getstring 失败说“无法将 'System.Byte[]' 类型的对象转换为 'System.String' 类型。 " GetDataTypeName 返回列的二进制文件,但在数据库中,该列仅包含格式类似于 xx.xx.xx.xx 的实际 ipv4 地址。
-
我拒绝编写 Visual Basic,但将其检索为
byte[],而在 C# 中您只需这样做:System.Text.Encoding.GetString(...)。因此,将byte[]转换回字节数据中的字符串值。
标签: c# sql asp.net .net vb.net