Почему пробелы добавляются в строку в моей таблице sql? - PullRequest
1 голос
/ 25 октября 2010

Я не уверен, почему это так, в основном, когда я вставляю строку, используя следующую функцию:

    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 ]

3 голосов
/ 25 октября 2010

Вы уверены, что один не varchar (50), а другой char (50).Вы обнаружите, что столбцы базы данных с указанным символом всегда будут иметь такую ​​длину.

2 голосов
/ 25 октября 2010

Я не знаю, отвечает ли это на ваш вопрос, но почему бы вам не использовать тип varchar вместо char.Или вы можете использовать функцию TRIM () в вашем запросе выбора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...