복붙노트

[SQL] C #에서 SQL UPDATE 문

SQL

C #에서 SQL UPDATE 문

나는 테이블 "학생"이

   P_ID   LastName  FirstName  Address  City

   1        Hansen    Ola                
   2        Svendson   Tove
   3        Petterson   Kari
   4        Nilsen       Johan
...and so on 

나는 C #에서 편집 코드를 변경하려면 어떻게

 string firstName = "Ola";
 string  lastName ="Hansen";
 string  address = "ABC";
 string city = "Salzburg";

 string connectionString = System.Configuration.ConfigurationManager
                          .ConnectionStrings["LocalDB"].ConnectionString;

 using (SqlConnection connection = new SqlConnection(connectionString))
     using (SqlCommand command = connection.CreateCommand())
 { 
   command.CommandText = "INSERT INTO Student (LastName, FirstName, Address, City) 
                          VALUES (@ln, @fn, @add, @cit)";

   command.Parameters.AddWithValue("@ln", lastName);
   command.Parameters.AddWithValue("@fn", firstName);
   command.Parameters.AddWithValue("@add", address);
   command.Parameters.AddWithValue("@cit", city);

   connection.Open();

   command.ExecuteNonQuery();

   connection.Close();
 } 

편집 항목에 성 필드는 LASTNAME 값을 가지고 있으며, FIRSTNAME 필드는 FIRSTNAME 값을 갖는 곳.

나는 이런 식으로 사용하려는 해달라고

 UPDATE Persons  SET Address='Nissestien 67', City='Sandnes' 
 WHERE LastName='Tjessem'     AND FirstName='Jakob'

그리고 난에 내 원래의 문을 편집

 command.CommandText = "UPDATE Student(LastName, FirstName, Address, City) 
   VALUES (@ln, @fn, @add, @cit) WHERE LastName='" + lastName + 
                           "' AND FirstName='" +  firstName+"'";

그러나 문은 왜 SQLEXCEPTION을 던지고, 실제로 실행되지 않는 이유는 무엇입니까? 그것은 어떤 해결책이 있습니까?

해결법

  1. ==============================

    1.이는 SQL에서 기록을 업데이트하는 올바른 방법이 아닙니다 :

    이는 SQL에서 기록을 업데이트하는 올바른 방법이 아닙니다 :

    command.CommandText = "UPDATE Student(LastName, FirstName, Address, City) VALUES (@ln, @fn, @add, @cit) WHERE LastName='" + lastName + "' AND FirstName='" + firstName+"'";
    

    이처럼 작성해야합니다 :

    command.CommandText = "UPDATE Student 
    SET Address = @add, City = @cit Where FirstName = @fn and LastName = @add";
    

    당신이 삽입 동작을 추가로 당신은 매개 변수가 같은 추가 할 수 있습니다.

  2. ==============================

    2.SQL에서 업데이트 문에 대한 구문 즉, 당신은 그렇지 않으면 당신은 예외를 얻을 것이다 구문을 사용합니다.

    SQL에서 업데이트 문에 대한 구문 즉, 당신은 그렇지 않으면 당신은 예외를 얻을 것이다 구문을 사용합니다.

    command.Text = "UPDATE Student SET Address = @add, City = @cit Where FirstName = @fn AND LastName = @ln";
    

    다음 그에 따라 매개 변수를 추가합니다.

    command.Parameters.AddWithValue("@ln", lastName);
    command.Parameters.AddWithValue("@fn", firstName);
    command.Parameters.AddWithValue("@add", address);
    command.Parameters.AddWithValue("@cit", city);  
    
  3. ==============================

    3.당신이 (당신이 강제로) SQL 구문을 사용하지 않으려면, 당신은 SQL 문 직접 작성하지 않는 엔티티 프레임 워크 또는 Linq에 - 투 - SQL과 같은 프레임 워크로 전환합니다.

    당신이 (당신이 강제로) SQL 구문을 사용하지 않으려면, 당신은 SQL 문 직접 작성하지 않는 엔티티 프레임 워크 또는 Linq에 - 투 - SQL과 같은 프레임 워크로 전환합니다.

  4. ==============================

    4.모든 언어에 대한 올바른 구문은 항상있다. 마찬가지로 SQL (구조적 쿼리 언어)도 우리가 업데이트 쿼리를 사용하려는 경우 수행해야 할 업데이트 쿼리에 대한 특정 구문이 있습니다. 그렇지 않으면 예상되는 결과를 제공하지 않습니다.

    모든 언어에 대한 올바른 구문은 항상있다. 마찬가지로 SQL (구조적 쿼리 언어)도 우리가 업데이트 쿼리를 사용하려는 경우 수행해야 할 업데이트 쿼리에 대한 특정 구문이 있습니다. 그렇지 않으면 예상되는 결과를 제공하지 않습니다.

  5. ==============================

    5.

    string constr = @"Data Source=(LocalDB)\v11.0;Initial Catalog=Bank;Integrated Security=True;Pooling=False";
    SqlConnection con = new SqlConnection(constr);
    DataSet ds = new DataSet();
    con.Open();
    SqlCommand cmd = new SqlCommand(" UPDATE Account  SET name = Aleesha, CID = 24 Where name =Areeba and CID =11 )";
    cmd.ExecuteNonQuery();
    
  6. ==============================

    6.이 CONCAT 양식을 사용하지 않습니다하십시오 :

    이 CONCAT 양식을 사용하지 않습니다하십시오 :

    String st = "UPDATE supplier SET supplier_id = " + textBox1.Text + ", supplier_name = " + textBox2.Text
            + "WHERE supplier_id = " + textBox1.Text;
    

    사용하다:

    command.Parameters.AddWithValue("@attribute", value);
    

    항상 작업 객체 지향

    편집 : 당신이 당신의 업데이트를 매개 변수화 할 때 방지 SQL 주입을 할 수 있기 때문입니다.

  7. ==============================

    7.

    command.Text = "UPDATE Student 
      SET Address = @add, City = @cit
      Where FirstName = @fn and LastName = @add";
    

     

  8. ==============================

    8.

    private void button4_Click(object sender, EventArgs e)
        {
            String st = "DELETE FROM supplier WHERE supplier_id =" + textBox1.Text;
    
            SqlCommand sqlcom = new SqlCommand(st, myConnection);
            try
            {
                sqlcom.ExecuteNonQuery();
                MessageBox.Show("刪除成功");
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    
    
    
        private void button6_Click(object sender, EventArgs e)
        {
            String st = "SELECT * FROM suppliers";
    
            SqlCommand sqlcom = new SqlCommand(st, myConnection);
            try
            {
                sqlcom.ExecuteNonQuery();
                SqlDataReader reader = sqlcom.ExecuteReader();
                DataTable datatable = new DataTable();
                datatable.Load(reader);
                dataGridView1.DataSource = datatable;
                //MessageBox.Show("LEFT OUTER成功");
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    
  9. ==============================

    9.

    String st = "UPDATE supplier SET supplier_id = " + textBox1.Text + ", supplier_name = " + textBox2.Text
                + "WHERE supplier_id = " + textBox1.Text;
    
            SqlCommand sqlcom = new SqlCommand(st, myConnection);
            try
            {
                sqlcom.ExecuteNonQuery();
                MessageBox.Show("update successful");
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
    
  10. from https://stackoverflow.com/questions/15246182/sql-update-statement-in-c-sharp by cc-by-sa and MIT license