2012-08-10 8 views
0

이름과 가격 인 2 개의 열이 있습니다. 데이터베이스 테이블에 데이터 그 림보기에 표시 될 데이터가 이미 있다고 가정합니다. 사용자가 몇 행에 상관없이 새로운 데이터 행을 입력하고 저장 버튼을 클릭하면 데이터의 모든 새로운 행이 데이터베이스에 저장됩니다.C# sql datagridview 데이터베이스에 새로운 데이터 행을 삽입하는 방법

질문 : 데이터의 새로운 행만 잡는 방법은 무엇입니까? 또는 이름이 존재하는지 확인하는 방법, 가격이 동일한 지 확인한 후 다른 가격을 삽입 한 다음 가격을 업데이트하십시오.

con = new System.Data.SqlClient.SqlConnection(); 
     con.ConnectionString = "Data Source=tcp:SHEN-PC,49172\\SQLEXPRESS;Initial Catalog=LSEStock;Integrated Security=True"; 
     con.Open(); 
     SqlDataAdapter da = new SqlDataAdapter(); 

     for (int i = 0; i<dataGridView1.Rows.Count; i++) 
     { 

      String insertData = "INSERT INTO CostList(SupplierName, CostPrice, PartsID) VALUES (@SupplierName, @CostPrice, @PartsID)" ; 
      SqlCommand cmd = new SqlCommand(insertData, con); 
      cmd.Parameters.AddWithValue("@SupplierName", dataGridView1.Rows[i].Cells[0].Value); 
      cmd.Parameters.AddWithValue("@CostPrice", dataGridView1.Rows[i].Cells[1].Value); 
      cmd.Parameters.AddWithValue("@PartsID", textBox1.Text); 
      da.InsertCommand = cmd; 
      cmd.ExecuteNonQuery(); 
     } 

     con.Close(); 

편집 :

여기 내 코드입니다 위의 코드는 데이터베이스에있는 DataGridView에있는 모든 데이터를 추가하고 중복 계속됩니다.

감사합니다.

답변

1

한 가지 방법은 SQL 테이블의 모든 데이터를 삭제 한 다음 그리드보기에있는 데이터를 삽입하는 것입니다.

이 문제를 해결하는 또 다른 방법은 표보기에서 이름이 tempid 인 열을 만들고 삽입되는 모든 새 행에 값 -1을 할당하는 것입니다. tempid = -1로만 행을 가져 와서 삽입하십시오 SQL 테이블에.

+0

나를 참조 할 수있는 몇 가지 샘플 코드를 제공 할 수 있습니까? 또는 일부 링크 감사합니다 –

+0

http://technico.qnownow.com/how-to-insert-update-delete-rows-in-asp-net-gridview-control/ –

0

데이터를 데이터 세트 및 데이터 테이블에로드하십시오. 및 하나의 다른 datatable (주 데이터) 개체.

DataGrid에 행을 삽입하고 클릭 한 후 클릭하면 기본 데이터로 새 데이터를 확인하십시오.

관련 문제