我不知道为什么会这样,基本上当我使用以下函数插入一行时:
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)类型。
答案 0 :(得分:3)
你确定一个不是varchar(50)而一个是char(50)。您会发现指定了char的数据库列始终是该长度。
答案 1 :(得分:2)
我不知道这是否回答了你的问题,但为什么不使用varchar类型而不是char。或者您可以在选择查询中使用TRIM()函数。