如何防止在SQL Server中自动添加空白字符?

时间:2012-12-26 02:34:03

标签: sql sql-server

我的visual studio 2012网站项目中有关于SQL Server的问题。例如;我有一个名为“user”的表,其中包含“name”(varchar(16))和“surname”(varchar(16))列。我添加了新的数据,如名称:“john”surname:“holiday”,但SQL Server会自动用空白字符填充变量的其余部分。看起来像。我怎么能阻止这个?我希望我能清楚地解释我的问题。

protected void LoginButton_Click(object sender, EventArgs e)
{
    string connectionString = "Data Source=MYPC-PC\\SQLEXPRESS;Initial Catalog=fff;Integrated Security=True";
    SqlConnection connection = new SqlConnection(connectionString);
    try
    {
        connection.Open();
    }
    catch (Exception s)
    {
        FailureText.Text = s.ToString();
    }
    SqlCommand cmd = new SqlCommand("SELECT * FROM [person] WHERE user_name='" + UserName.Text + "' AND user_password='" + Password.Text + "' ", connection);

    SqlDataReader dr = null;
    dr = cmd.ExecuteReader();

    while (dr.Read())
    {
        if (this.CompareStrings(dr["user_name"].ToString(), UserName.Text) &&
            this.CompareStrings(dr["user_password"].ToString(), Password.Text))
        {
            FailureText.Text = "ok";
        }
        else
        {
            FailureText.Text = "no";
        }


    }
    connection.Close();
    dr.Close();
}

例如,当我调试“dr [”user_name“]时,”变量就像观察中的变量:

2 个答案:

答案 0 :(得分:1)

创建表时,您必须使用ANSI_PADDING设置。如果是这样,您将需要再次删除并创建表格。

答案 1 :(得分:1)

this.CompareStrings(dr["user_name"].ToString(), UserName.Text)--> dr["user_name"].ToString().Trim()

如果有一些额外的空格,

可能会解决你的问题