0

每当我从文本框将字符串值插入数据库时​​,在 asp.net 中,在数据库行中的字符串值之后存储随机数量的空格?如何避免?

4

6 回答 6

6

您可以使用 Trim() 函数,或者您可能还想检查您的数据库设置。

如果您使用了 char 或 nchar,您将始终被分配 x 个字节空间,并且您的字符串将被填充。为避免这种情况,请使用 varchar,它只会存储您发送的字符。

如果您发送“测试”

char(10) 将存储“测试”

然而 varchar(10) 将存储“测试”

于 2012-10-31T11:08:43.627 回答
2

检查数据库中列的定义。是 CHAR(x) 还是 NCHAR(x)?还是 VARCHAR(x) 或 NVARCHAR(x)?

如果它不是 VARCHAR 或 NVARCHAR,它是一个固定长度的字段,这意味着它后面总会有空格(假设你的字符串的长度不完全是字段的长度)。

除非您从头开始编码,否则更改数据库中字段的定义可能很重要(并且更改它不会从所有现有行中删除空格)。但这可能就是正在发生的事情。

如果在存储过程参数中或在为 SqlCommand 创建参数时使用 CHAR(x) 或 NCHAR(x),也可能会发生这种情况。

为了修剪字符串中的空格,我喜欢 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

如果您使用的是 c#,则始终可以使用 trim() 选项。例如,如果您有一个文本字符串“名称”,则可以通过以下方式避免任何以下空格:

string newstr = name.trim();

这将确保字符串末尾没有空格。

于 2012-10-31T11:49:43.683 回答
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 回答