ASP.Net вставляет данные из Textbox в базу данных - PullRequest
1 голос
/ 14 декабря 2011

Я пытаюсь вставить данные из текстового поля в свою базу данных, и это вызывает у меня исключение.

Сведения об исключении: System.Data.SqlClient.SqlException: неправильный синтаксис рядом с 'test'.

несколько деталей, прежде чем я представлю свой код: моя база данных называется: фильмы моя таблица данных называется: пользователи и у меня есть столбцы, такие как: «FirstName», «LastName» и т.д ...

защищенный void Register_Click (отправитель объекта, EventArgs e) { SqlConnection connection = new SqlConnection («Источник данных = MICROSOF-58B8A5 \ SQL_SERVER_R2; Исходный каталог = Фильм; Интегрированная безопасность = True»);

        connection.Open();
        //FirstName***********
        string firstName = FirstNameTextBox.Text;
        string sqlquery = ("INSERT INTO [Users] (FirstName) VALUES (' " +FirstNameTextBox.Text + " ' ");

        SqlCommand command = new SqlCommand(sqlquery , connection);
        command.Parameters.AddWithValue("FirstName", firstName);
        //LastName************
        string lastName = LastNameTextBox.Text;
        sqlquery = ("INSERT INTO [Users] (LastName) VALUES (' " + LastNameTextBox.Text+ " ' ");
        command.Parameters.AddWithValue("LastName", lastName);
        //Username*************
        string username = UsernameTextBox.Text;
        sqlquery = ("INSERT INTO [Users] (Username) VALUES (' " + UsernameTextBox.Text+ " ' ");
        command.Parameters.AddWithValue("UserName", username);
        //Password*************
        string password = PasswordTextBox.Text;
        sqlquery = ("INSERT INTO [Users] (Password) VALUES (' " + PasswordTextBox.Text + " ' ");
        command.Parameters.AddWithValue("Password", password);
        if (PasswordTextBox.Text == ReTypePassword.Text)
        {
            command.ExecuteNonQuery();
        }
        else
        {
            ErrorLabel.Text = "Sorry, You didnt typed your password correctly.  Please type again.";
        }

        connection.Close();
    }

Ответы [ 4 ]

5 голосов
/ 14 декабря 2011

Используйте один запрос и используйте @ParamName:

    string sqlquery = "INSERT INTO [Users] (FirstName,LastName,UserName,Password) VALUES (@FirstName,@LastName,@UserName,@Password)";
    SqlCommand command = new SqlCommand(sqlquery , connection);

    //FirstName***********
    string firstName = FirstNameTextBox.Text;
    command.Parameters.AddWithValue("FirstName", firstName);
    //LastName************
    string lastName = LastNameTextBox.Text;     
    command.Parameters.AddWithValue("LastName", lastName);
    //Username*************
    string username = UsernameTextBox.Text;     
    command.Parameters.AddWithValue("UserName", username);
    //Password*************
    string password = PasswordTextBox.Text;    
    command.Parameters.AddWithValue("Password", password);

    ...........
0 голосов
/ 17 ноября 2018

Добавьте также следующее:

string sqlquery = "INSERT INTO [Users] (FirstName,LastName,Username,Password) VALUES ( " +FirstNameTextBox.Text + " ,";
sqlquery +=  LastNameTextBox.Text+ ",";
sqlquery +=   UsernameTextBox.Text+ ",";
sqlquery +=  PasswordTextBox.Text + " )";
SqlCommand command = new SqlCommand(sqlquery , connection);
0 голосов
/ 20 апреля 2018

Может быть, этот код короче:

sqlcommand command=new sqlcommand("insert into[Users](FirstName,LastName,UserName,Password) values('"+FirstNameTextBox.Text+"','"+LastNameTextBox.Text+"','"+UsernameTextBox.Text+"','"+PasswordTextBox.Text+"')",connection);
command.ExecuteNonQuery();
0 голосов
/ 14 декабря 2011

Кажется, проблема в том, что вы создаете странную инструкцию SQL. Это реальная ценность INSERT INTO [Users] (FirstName) VALUES ('(theValue)') и вы не добавляете остальные значения (фамилия и т. д.). Остальная часть кода ничего не делает, потому что запрос не включает остальные параметры.

...