SQLDataReaderを使用してSQLデータベースからIPv4情報を取得するASP.Netアプリケーションを使用して作業します。 SQLからIPを読むとき、データ型はバイナリであり、これを処理する最善の方法はわかりません。SQLDataReaderを使用してIPアドレスを読み取る
SQLDataReader.GetIPAddress()のメソッドがないので、SQLDataReader.GetBytes()を使用する必要があるようです。 getstringは非常に簡単なので、これを行う方法の多くの例はオンラインですが、getbyte()や別のメソッドを使用してIPを呼び出す方法がもう1つあります。
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'などです。 – Greg
C#に変換する必要はありません。私は通常vb.netで書き込みます。Getstringは「タイプ 'System.Byte []'のオブジェクトをキャストして 'System.String'をタイプできません。 GetDataTypeNameは列のバイナリを返しますが、データベースには実際のipv4アドレスのみがxx.xx.xx.xxに似た形式で格納されます。 – jewbacca
私はVisual Basicを書くことを拒否しますが、 'byte []'として取得し、C#では 'System.Text.Encoding.GetString(...)'とするだけです。したがって、 'byte []'をバイトデータから文字列値に変換し直してください。 – Greg