2010-11-20 4 views
0

SQL ServerテーブルにASCIIデータファイルのレイアウト設定(行区切り文字、列区切り文字、テキスト修飾子など)を格納しています。表の列の1つに、列区切り文字(コンマ、タブなど)が含まれています。現在、私はデリミタを '、'、 '\ t'、 '|'などとして保存しています。問題はSQL ServerからSqlDataReaderを使用してC#アプリケーションに値を取得するときです.Netフレームワークは常にエスケープ文字を追加します値。これは、区切り文字がすでに "\ t"として保存されている場合の問題です。私は "\\ t"で終わる。C#SQL Serverでの制御文字の格納と使用

String.Split()でカラムデリミタ値を使用しようとすると、文字セパレータが{"\\ t"}または{'\'、\ t ' }。

助けてください。

答えて

1

SQL Serverはエスケープ文字を使用しません。タブ文字を保存する場合は、'\t'ではなく、正しいANSI文字(char(9))を使用する必要があります。

+0

SQL Serverに '\ t'を格納することは問題ではないようです。 SQL Server管理スタジオでテーブルをクエリすると、正しい値が返されます。私のC#.Netアプリケーションの中から問題が発生したという値を取り出すまではない。追加の '\'が追加されたときのことです。 – kyletme

+0

「正しい値を返す」とはどういう意味ですか? SSMSに '\ t'と表示されていますか? – Gabe

+0

申し訳ありません。わかった。あなたの右。私は '\ t'をSqlテーブルのchar(9)に置き換えて動作させます。どうもありがとう。 – kyletme

関連する問題