という名前のフィールドのデータ型がのnchar(2)のテーブルユーザーがあります。このテーブルからVS2010のデータセットが作成されました。 DataSetのフィールドの組み合わせは、System.Stringであり、maxlengthはに設定されています。私はこのDataSetにバインドされているテキストフィールドを持っています。例えば私が「00」に値を変更し、私はプログラムがデータベースに再度DataSetを更新しているときことを確認することができます保存]をクリックすると今:データ型nchar(2)の先頭のゼロ
usersTableAdapter.Update(usersDataSet.Users);
、現在選択されているユーザーの値が「」です。
currentUser.mix = "00";
が、データベース内の値は、次のように保存されている: ""。なぜ最初のゼロが削除され、最後にスペースが追加されたのかわかりません。たとえば、テキストフィールドに「10」を入れて保存すると、データベースに「10」として保存されます。しかし、テキストフィールドに「01」と入力すると、先行ゼロが再び削除されます(> "1")。
どこかで、この値は数値型になります(おそらく、最終的な挿入/更新によって文字列に変換されます)。この変換がどこで起こっているかを知る必要があります。 –
私は行ごとにデバッグし、最終的なUpdateコードには、mixの値は常に文字列( "00")になっていますので、この変換coludがどこで起こっているのか分かりません。私はそれがデータセットとデータベースのどこかで起こると思います。 –
'UpdateCommand'と' InsertCommand'( 'SqlDataAdapter'と仮定したもの)を' usersTableAdapter'で調べてみましょう。彼らの 'CommandText'は何ですか?パラメータはありますか?もしそれらが間違っていたら、 'usersTableAdapter'はどのように構築されましたか? –