テキストボックスからデータベースに文字列値を挿入するたびに、asp.netで、データベース行の文字列値の後にランダムな数の空白が保存されますか? それを避ける方法は?
6 に答える
Trim() 関数を使用するか、データベースの設定を確認することもできます。
char または nchar を使用した場合、常に x バイトのスペースが割り当てられ、文字列がパディングされます。これを回避するには、送信した文字までしか保存しない varchar を使用します。
「テスト」を送ると
char(10) は「テスト」を格納します
ただし、varchar(10) は「test」を格納します
データベースの列の定義を確認してください。CHAR(x)またはNCHAR(x)ですか?またはVARCHAR(x)またはNVARCHAR(x)?
VARCHARまたはNVARCHARでない場合は、固定長のフィールドです。つまり、その後に常にスペースがあります(文字列の長さがフィールドの長さと正確に一致しないと想定)。
ゼロからコーディングする場合を除いて、データベース内のフィールドの定義を変更することは大きな問題になる可能性があります(変更しても、既存のすべての行からスペースが削除されるわけではありません)。しかし、それはおそらく起こっていることです。
これは、途中でCHAR(x)またはNCHAR(x)を使用している場合、ストアドプロシージャのパラメータで使用している場合、またはSqlCommandのパラメータを作成している場合にも発生する可能性があります。
文字列からスペースを削除するには、Habibの答えが好きです。
string content= TextBox1.Text.Trim();
content
この値をデータベースに保存します。
これで問題が解決しない場合、おそらく問題はアプリケーション側にありません。
さらにこのクエリを実行して、スペースを削除することもできます-
UPDATE
your_table
SET
your_column = TRIM(your_column);
これにより、列のすべての値からスペースを確実に削除できます。
Use trim() function in c# or SQL Query side ..
Ex:
String str = " C# ";
Console.WriteLine("Hello{0}World!", str);
string trStr = str.Trim();
textbox1.Text.Replace(" ","");
それを行う最もクリーンな方法ではないかもしれませんが、うまくいくはずです
C# を使用している場合は、いつでも trim() オプションを使用できます。たとえば、テキスト文字列「名前」がある場合、次のようにして空白を避けることができます。
string newstr = name.trim();
これにより、文字列の末尾に空白が残らないようになります。