C#では、SQL Server Management Studioがvarbinary列の内容として示すテキスト出力をどのように取り、そのテキストを列に格納されたバイト[]に変換できますか?バイトへの可変テキスト表現
答えて
SqlConnection conn = new SqlConnection(yourConnectionString);
SqlCommand cmd = new SqlCommand("select col from yourtable", conn);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
byte[] bytes = (byte[])reader[0];
}
reader.Close();
conn.Close();
OK、あなたがコピー&ペーストvarbinary型の列(例えば「0x6100730064006600」)のためにSSMSに表示されている値を、そして取得したいので、C#で、それからのバイト[]?
これはかなり簡単です.0xの後の部分は16進値(それぞれ2文字)です。だから、あなたは、16のベース(16進数)を指定する番号に変換し、各ペアを取り、それをリストに追加し、そのよう:
string stringFromSQL = "0x6100730064006600";
List<byte> byteList = new List<byte>();
string hexPart = stringFromSQL.Substring(2);
for (int i = 0; i < hexPart.Length/2; i++)
{
string hexNumber = hexPart.Substring(i * 2, 2);
byteList.Add((byte)Convert.ToInt32(hexNumber, 16));
}
byte [] original = byteList.ToArray();
免責事項 - かなり危険なとunoptimalコード、私はちょうどそれをハッキング一緒にデモンストレーションの目的のために(それは動作するはずです)。
コードが最適でないのはなぜですか?それはかなり私の意見でokと思われる:) –
@Żubrówka - 可読性の面では、それほど悪くはない。パフォーマンスに関しては、アレイを使用することもできます。なぜなら、どれだけの大きさが必要かを正確に知っているからです。別のデータ構造を使い、次に.ToArray() - それは私に少し余裕があるようですが、私は主に明快さと可読性のためにそれをしました:) –
私の一日を作った。多くのありがとう – rank1
- 1. y軸へのテキスト表現
- 2. os.urandomとバイト表現
- 3. 文字列表現バイトをバイトに変換する方法は?
- 4. テキストの表現
- 5. C番号バイト表現
- 6. ビットの文字列表現をバイトに変換する
- 7. C++正規表現:C#の正規表現は、C++のLinuxへの変換
- 8. MimeMessageからバイト配列への変換
- 9. 文字列からバイトへの変換
- 10. 正規表現でリンク可能なテキストを取得する
- 11. 正規表現を使用してテキストを可変テキストに置き換えますか?
- 12. 正規表現マッチテキスト:[[テキスト]]
- 13. 可変テキストのAndroidポップアップウィンドウ
- 14. テキストをリンクに変換する - PHP正規表現の問題
- 15. 表現+変数値+プロットmaintitleで通常のテキスト
- 16. C++のポインタ表現への参照の変換
- 17. VS2008からVS2010へのプロジェクト変換後の表現/エンコーディングエラー
- 18. 変数の表現
- 19. コールアクティビティ - 表現 - 方法へ
- 20. タグ間のテキストの正規表現
- 21. ®をSilverlightテキスト表現に変換するには
- 22. 可変URLへのFlaskルート
- 23. jQueryオブジェクトへの可変スコープアクセス
- 24. 可変順序正規表現の構文
- 25. 正規表現からSQLサーバーへの挿入は、SQL Server 2008では、テキスト
- 26. バイト番号のデータのためのPythonの正規表現
- 27. バイトからバイトへの文字列。値が範囲外です - 変換エラーjava
- 28. Pythonの正規表現抽出テキスト
- 29. のJava正規表現抽出テキスト
- 30. 正規表現は、このテキストでセパレータ
ありがとうございます。しかし、SQL Server Management Studioウィンドウからテキストをカットアンドペーストしたいと思います。私はデータベースを再クエリーしたくありません。 – Slaggg
SSMSは、フォーマットされたデータを表示するように設計されたクライアントアプリケーションです。データベースから返される基本のバイナリデータにアクセスするためのインタフェースはありません。これは、この回答に記載されているプログラム的なインターフェースが目的とするものです。 SSMSはこのための間違ったツールです。 –
@ChrisSmith私は同意しません - バイナリデータフィールドのSSMSテキスト表現で表示されるテキストコンテンツは、フィールドに格納されている実際のデータとは明確に関連しています。 – Slaggg