0

テキストボックスからデータベースに文字列値を挿入するたびに、asp.netで、データベース行の文字列値の後にランダムな数の空白が保存されますか? それを避ける方法は?

4

6 に答える 6

6

Trim() 関数を使用するか、データベースの設定を確認することもできます。

char または nchar を使用した場合、常に x バイトのスペースが割り当てられ、文字列がパディングされます。これを回避するには、送信した文字までしか保存しない varchar を使用します。

「テスト」を送ると

char(10) は「テスト」を格納します

ただし、varchar(10) は「test」を格納します

于 2012-10-31T11:08:43.627 に答える
2

データベースの列の定義を確認してください。CHAR(x)またはNCHAR(x)ですか?またはVARCHAR(x)またはNVARCHAR(x)?

VARCHARまたはNVARCHARでない場合は、固定長のフィールドです。つまり、その後に常にスペースがあります(文字列の長さがフィールドの長さと正確に一致しないと想定)。

ゼロからコーディングする場合を除いて、データベース内のフィールドの定義を変更することは大きな問題になる可能性があります(変更しても、既存のすべての行からスペースが削除されるわけではありません)。しかし、それはおそらく起こっていることです。

これは、途中でCHAR(x)またはNCHAR(x)を使用している場合、ストアドプロシージャのパラメータで使用している場合、またはSqlCommandのパラメータを作成している場合にも発生する可能性があります。

文字列からスペースを削除するには、Habibの答えが好きです。

于 2012-10-31T11:13:01.100 に答える
1
string content= TextBox1.Text.Trim();

contentこの値をデータベースに保存します。

これで問題が解決しない場合、おそらく問題はアプリケーション側にありません。

さらにこのクエリを実行して、スペースを削除することもできます-

UPDATE
    your_table
SET 
    your_column = TRIM(your_column);

これにより、列のすべての値からスペースを確実に削除できます。

于 2012-10-31T11:08:04.920 に答える
0
Use trim() function in c# or SQL Query side ..
Ex:
String str = " C# ";
Console.WriteLine("Hello{0}World!", str);
string trStr = str.Trim();
于 2012-10-31T11:06:52.020 に答える
0
textbox1.Text.Replace(" ","");

それを行う最もクリーンな方法ではないかもしれませんが、うまくいくはずです

于 2012-10-31T11:07:03.017 に答える
0

C# を使用している場合は、いつでも trim() オプションを使用できます。たとえば、テキスト文字列「名前」がある場合、次のようにして空白を避けることができます。

string newstr = name.trim();

これにより、文字列の末尾に空白が残らないようになります。

于 2012-10-31T11:49:43.683 に答える