C# sql中的Varchar创建额外的空白
嗯,我正在用C#构建一个小的业余爱好程序,并试图将程序中的信息写入Sql 问题是我在Sql中有一些C# sql中的Varchar创建额外的空白,c#,mysql,sql-server,C#,Mysql,Sql Server,嗯,我正在用C#构建一个小的业余爱好程序,并试图将程序中的信息写入Sql 问题是我在Sql中有一些varchar字段,最大长度为50 当我发送信息来填充这些列时,它们将被添加额外的空间,直到达到50个字符 我已经尝试将varchar更改为nvarchar,只是想看看它是否有效 我一直在研究的是,nchar做这种事情,但是使用varchar我不应该有问题,但我有问题 public PersonModel CreatePerson(PersonModel model) { using (ID
varchar
字段,最大长度为50
当我发送信息来填充这些列时,它们将被添加额外的空间,直到达到50个字符
我已经尝试将varchar
更改为nvarchar
,只是想看看它是否有效
我一直在研究的是,nchar
做这种事情,但是使用varchar
我不应该有问题,但我有问题
public PersonModel CreatePerson(PersonModel model)
{
using (IDbConnection connection =
new System.Data.SqlClient.SqlConnection(GlobalConfig.CnnString(db)))
{
var p = new DynamicParameters();
p.Add("@FirstName", model.FirstName);
p.Add("@LastName", model.LastName);
p.Add("@EmailAddress", model.EmailAddress);
p.Add("@CellphoneNumber", model.CellphoneNumber);
p.Add("@id", 0, dbType: DbType.Int32, direction: ParameterDirection.Output);
connection.Execute("dbo.spPeople_Insert", p, commandType: CommandType.StoredProcedure);
model.Id = p.Get<int>("@id");
return model;
}
}
这些是我表格中的文本框,顺便说一句,根据
您需要设置设置ANSI\u PADDING OFF
请注意,更改设置不会影响现有列,只会影响新列您可以实际检查的内容很少 检查存储过程参数,确保它们也是nvarchar,因为列类型在nvarchar中 当Cyber Progs州检查ANSI_填充时
SET ANSI_PADDING OFF
在向数据库传递数据时,在代码中使用trim
例如:p.Add(“@FirstName”,model.FirstName.Trim()) 在将值发送到SQL数据库之前,对您的
string
值调用Trim()
。传递这些值时没有空格,因为我正在与调试人员进行检查。如何检查列值是否有额外的空格?SQLL中的ltrim和rtrim函数您可以共享将数据保存到数据库的代码吗?另外,我相信您已经这样做了,但我建议重新检查列的数据类型如果我必须设置ansi_padding off,那么nchar和varchar之间的区别是什么?如果您是指char和varchar之间的区别,这里有一篇文章解释它在不同设置下的工作原理!不用于将varchar转换为nvarchar。请阅读如何在堆栈溢出链接中添加好答案以提供最佳反馈:
SET ANSI_PADDING OFF