将连接的字符串插入DB会被截断

时间:2014-03-16 09:20:38

标签: c# sql sql-server concatenation truncation

我对将新用户插入数据库的方式做了一个简单的修改( DataBase SQL Server 2008 )。而不是用户输入他的完整电子邮件(username@domain.com),用户被命令单独输入用户名,然后在代码中完成一个完整的电子邮件地址,如下所示:

User.createUser(tbFirstName.Text, tbLastName.Text, tbEmail.Text + "@domain.com");

函数createUser未被更改,摘录:

db sql = new db();
sql.command = @"insert into users(first_name, last_name, email) values(@firstname, @lastname, @email)";
sql.addParam("@firstname", firstname);
sql.addParam("@lastname", lastname);
sql.addParam("@email", email);
sql.nonQuery();

在类db中实现的addParam执行名称所示的内容:

public void addParam(SqlParameter param)
{
    _command.Parameters.Add(param);
}
public void addParam(string name, object value)
{
    addParam(new SqlParameter(name, value));
}

:当

SqlCommand _command;

是db类中的成员。

现在当我填写一个新的用户表单并输入" user"在tbEmail中,文本与" @ domain.com"连接。根据需要和Param的值是正确的,但是在执行SQL命令时,只有文本" user"插入到数据库中,其余部分(@ domain.com)被截断(数据库中的字段为nvarchar(max))。

为什么会这样?与此修改之前的区别是什么?我如何解决它? 提前致谢 的编辑。

1 个答案:

答案 0 :(得分:0)

尝试更改表格的列大小。可能您的列可能不足以容纳新大小

相关问题