每当我从文本框将字符串值插入数据库时,在 asp.net 中,在数据库行中的字符串值之后存储随机数量的空格?如何避免?
6 回答
您可以使用 Trim() 函数,或者您可能还想检查您的数据库设置。
如果您使用了 char 或 nchar,您将始终被分配 x 个字节空间,并且您的字符串将被填充。为避免这种情况,请使用 varchar,它只会存储您发送的字符。
如果您发送“测试”
char(10) 将存储“测试”
然而 varchar(10) 将存储“测试”
检查数据库中列的定义。是 CHAR(x) 还是 NCHAR(x)?还是 VARCHAR(x) 或 NVARCHAR(x)?
如果它不是 VARCHAR 或 NVARCHAR,它是一个固定长度的字段,这意味着它后面总会有空格(假设你的字符串的长度不完全是字段的长度)。
除非您从头开始编码,否则更改数据库中字段的定义可能很重要(并且更改它不会从所有现有行中删除空格)。但这可能就是正在发生的事情。
如果在存储过程参数中或在为 SqlCommand 创建参数时使用 CHAR(x) 或 NCHAR(x),也可能会发生这种情况。
为了修剪字符串中的空格,我喜欢 Habib 的回答。
string content= TextBox1.Text.Trim();
现在将此content
值存储到数据库中。
如果这没有帮助,则问题可能不在您的应用程序端。
您还可以执行此查询以删除空格-
UPDATE
your_table
SET
your_column = TRIM(your_column);
这将确保您删除列的所有值中的任何空格。
如果您使用的是 c#,则始终可以使用 trim() 选项。例如,如果您有一个文本字符串“名称”,则可以通过以下方式避免任何以下空格:
string newstr = name.trim();
这将确保字符串末尾没有空格。
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(" ","");
也许不是最干净的方法,但它应该工作