[SQL] C #에서 SQL UPDATE 문
SQLC #에서 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.이는 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.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.당신이 (당신이 강제로) SQL 구문을 사용하지 않으려면, 당신은 SQL 문 직접 작성하지 않는 엔티티 프레임 워크 또는 Linq에 - 투 - SQL과 같은 프레임 워크로 전환합니다.
당신이 (당신이 강제로) SQL 구문을 사용하지 않으려면, 당신은 SQL 문 직접 작성하지 않는 엔티티 프레임 워크 또는 Linq에 - 투 - SQL과 같은 프레임 워크로 전환합니다.
-
==============================
4.모든 언어에 대한 올바른 구문은 항상있다. 마찬가지로 SQL (구조적 쿼리 언어)도 우리가 업데이트 쿼리를 사용하려는 경우 수행해야 할 업데이트 쿼리에 대한 특정 구문이 있습니다. 그렇지 않으면 예상되는 결과를 제공하지 않습니다.
모든 언어에 대한 올바른 구문은 항상있다. 마찬가지로 SQL (구조적 쿼리 언어)도 우리가 업데이트 쿼리를 사용하려는 경우 수행해야 할 업데이트 쿼리에 대한 특정 구문이 있습니다. 그렇지 않으면 예상되는 결과를 제공하지 않습니다.
-
==============================
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.이 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.
command.Text = "UPDATE Student SET Address = @add, City = @cit Where FirstName = @fn and LastName = @add";
-
==============================
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.
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); }
from https://stackoverflow.com/questions/15246182/sql-update-statement-in-c-sharp by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] PHP - MySQL 데이터베이스로 가져 오기 CSV 파일을 사용하여 LOAD DATA INFILE (0) | 2020.04.14 |
---|---|
[SQL] 어떻게 열로 MySQL의 테이블 행을 바꾸어하기 (0) | 2020.04.14 |
[SQL] 자바 도구 LINQ [폐쇄] (0) | 2020.04.14 |
[SQL] SQL의 달의 마지막 날을 받기 (0) | 2020.04.14 |
[SQL] 어떤 SQL 쿼리가 빠르다? 필터에 대한 기준이나 Where 절을하세요? (0) | 2020.04.14 |