为什么在我的sql表中将空格添加到一行?

时间:2010-10-25 09:19:04

标签: asp.net sql database

我不知道为什么会这样,基本上当我使用以下函数插入一行时:

    public bool CreateUser(string username, string password, string email, int age = 0)
    {
        SqlConnection myConnection = new SqlConnection();
        myConnection.ConnectionString = "Data Source=localhost\\SQLEXPRESS;" +
        "Initial Catalog=Pubs;Integrated Security=SSPI;Trusted_Connection=True;";

        try
        {
            myConnection.Open();

            string query = "INSERT INTO SiteUser VALUES('" + username + "', '" +  password + "', '" + email + "', " + age + ")";
            SqlCommand cmd = new SqlCommand(query);
            cmd.Connection = myConnection;
            cmd.ExecuteNonQuery();

            myConnection.Close();
        }
        catch (Exception excep)
        {
            string error = excep.ToString();
            Response.Write(error);

            return false;
        }


        return true;
    }

字段'密码'最终会有空格(如“密码”中所示)。所以无论密码是什么,都会被白色空格所拖累。

奇怪的是,“UserName”字段不会发生这种情况,两者都是char(50)类型。

2 个答案:

答案 0 :(得分:3)

你确定一个不是varchar(50)而一个是char(50)。您会发现指定了char的数据库列始终是该长度。

答案 1 :(得分:2)

我不知道这是否回答了你的问题,但为什么不使用varchar类型而不是char。或者您可以在选择查询中使用TRIM()函数。