Как я могу добавить некоторые значения в мою базу данных - PullRequest
0 голосов
/ 25 декабря 2018

Я новичок в C #, и я написал код, который подключается к моей базе данных, но он дает мне ошибку

Я сделал все сначала, но ничего не произошло

private void btnSubmit_Click(object sender, EventArgs e) 
{
     string conString = "data source=DESKTOP-D5VFL9P; initial catalog = university; integrated security = True; MultipleActiveResultSets = True;";

     using (SqlConnection connection = new SqlConnection(conString)) 
     {
         connection.Open();

         using(SqlCommand command = new SqlCommand("INSERT INTO Persons (PersonID, LastName, FirstName, Age, City) VALUES (" + int.Parse(txtPersonID.Text) + ", '" +
    txtLastName.Text + "', '" + txtFirstName.Text + "' ," + int.Parse(txtAge.Text) + ", '" + txtCity.Text + "'", connection)) 
         {
             using(SqlDataReader reader = command.ExecuteReader()) 
             {
                  MessageBox.Show("Data inserted");

                  txtFirstName.Text = "";
                  txtLastName.Text = "";
                  txtPersonID.Text = "";
                  txtAge.Text = "";
                  txtCity.Text = "";
             }
         }
     }
 }

Iхочу добавить некоторые значения в мою базу данных

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

Я не рекомендую это , поскольку это определенно открывает дверь для Атака SQL-инъекцией , но используйте строку ниже, которая будет работать в вашем случае:

string cmdText =  "INSERT INTO Persons(PersonID,LastName,FirstName,Age,City)" +
                     " VALUES ('" + int.Parse(txtPersonID.Text) + "', " +
                               "'" + txtLastName.Text + "', " +
                               "'" + txtFirstName.Text + "' ,'" +
                               int.Parse(txtAge.Text) + "', '" +
                               txtCity.Text + "')"

Я бы сделал что-то вроде этого:

using (SqlConnection conn = new SqlConnection(conString))
{
    SqlCommand cmd = new SqlCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = 
        "INSERT INTO Persons (PersonID,LastName,FirstName,Age,City) VALUES (@PersonID,@LastName,@FirstName,@Age,@City)";
    cmd.Parameters.AddWithValue("@PersonID", int.Parse(txtPersonID.Text));
    cmd.Parameters.AddWithValue("@LastName", txtLastName.Text);
    cmd.Parameters.AddWithValue("@FirstName", txtFirstName.Text);
    cmd.Parameters.AddWithValue("@Age", int.Parse(txtAge.Text));
    cmd.Parameters.AddWithValue("@City", txtCity.Text);
    cmd.Connection = conn;
    conn.Open();
    int rowsAffected = cmd.ExecuteNonQuery();
    if(rowsAffected > 0)
    {
        MessageBox.Show("Data inserted");
    }
    else
    {
       MessageBox.Show("Failed");
    }
    conn.Close();
}
0 голосов
/ 25 декабря 2018

Там должно быть ) за городом.Как txtCity.Text + "')".

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