2011-09-08 16 views
5

私は広範なフォームをSQLデータベースに挿入してから、管理ページからすべてのデータを要求し、管理ページのフォームに挿入し直します。データベースへの元の挿入時に、この特定のドロップダウンリスト(他のものと同様に)が選択されたデータを挿入しています。しかし、私がデータベースに行くと、この特定のセルは、選択された値が挿入された後、空白の空白が3〜4になります。これは、管理者のフォームに挿入しようとすると、ブール比較がfalseで応答する原因になります。すなわち(「プライマリ」==「プライマリ」)=偽である。したがって、ドロップダウンリストは更新されません。SQLデータベースに挿入するときに文字列の値が空白になるのはなぜですか?

これらの空白をSQL行に追加する原因は何ですか?このコードは、すべてのHTMLドロップダウンリストと同じコードです。そして、SQLデータベースの構造も同じように同じように見えます。

p.s.問題を元に戻すには、コード内で.Trim()を使用しようとしています。しかし、これは違いはありません。 SQLデータベースは挿入時に空白を追加するようです。

+0

コードは何ですか?列のタイプは何ですか? SQLは何ですか? –

+0

"SQLデータベースが挿入時に空白を追加するようです。"コードでクエリを渡すのではなく、dbmsインターフェイスから直接正しいSQLを実行することでテストしてください。 –

+0

** WHAT **データベースとバージョン** SQL **は単なる構造化照会言語です** **多くの**データベースシステムで使用されている言語** ** SQL **はデータベース製品ではありません**このようなものは非常に多くのベンダーです**特定の** - あなたが実際に使用している**データベースシステム**を知る必要があります.... –

答えて

26

空白を追加する列は、VARCHARまたはNVARCHARではなく、CHARまたはNCHARになりますか?たとえば、カラムのデータ型がCHAR(10)で、そのカラムに "Hello"を挿入すると、そのカラムには常に10文字が表示され、 "Hello"の後ろに5つの空白文字が追加されます。ただし、VARCHAR(10)を使用すると、これは発生しません。

+2

または 'NVARCHAR'ではなく' NCHAR'です。 – Oded

+0

ああ、それを追加するのを忘れてしまった。私は自分の答えを更新しました。 – smoak

+0

うーん、@smoakは面白いことだ。それはすべてvarchar(50)として行われます。私はvarchar(100)として少なくとも1つを実行したことに気付きました。だから、余分な文字を追加する必要はありません...しかし、あなたは知っている、それは面白いです。 'Primary'が選択されている場合、 'Spouse'が選択されている場合は空白が3つ追加され、10が追加されます。私はそれをcharとして持っていましたが、データベースはちょうど正しく更新されていません。 – iDevJunkie

関連する問題