2017-01-30 2 views
-1

그래서 DB에 데이터를 추가하는 데 필요한 일부 텍스트 상자와 단추가있는 데이터베이스에 연결된 DataGridView를 갖기 위해 노력하고 있습니다. 테이블을 업데이트 할 수는 있지만 데이터베이스를 제대로 업데이트 할 수는 없습니다.C# 데이터 집합 및 DataGridView 업데이트

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace ParametSampleApp 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      // TODO: This line of code loads data into the 'database1DataSet.Table' table. You can move, or remove it, as needed. 
      this.tableTableAdapter1.Fill(this.database1DataSet.Table); 

     } 

     private void btnAdd_Click(object sender, EventArgs e) 
     { 
      DataRow newUserRow = database1DataSet.Tables["Table"].NewRow(); 

      newUserRow["FirstName"] = txtFName.Text; 
      newUserRow["LastName"] = txtLName.Text; 
      newUserRow["PostCode"] = txtPostcode.Text; 
      newUserRow["OperatingSystem"] = txtOS.Text; 

      database1DataSet.Tables["Table"].Rows.Add(newUserRow); 

      this.tableTableAdapter1.Update(this.database1DataSet.Table); 

     } 
    } 
} 

더 쉽게 이해하기 위해 전체 프로젝트의 ZIP이 필요하면 쉽게 업로드하고 보낼 수 있습니다.

내 DataSet, BindingSource 및 TableTableAdaper가 자동으로 만들어 지도록 DataGridView GUI를 사용하여 연결을 설정한다는 점에 유의할 가치가 있습니다.

+1

"제대로 업데이트 할 수 없습니까?" 예외가 있습니까? 데이터베이스가 비어있는 상태로 유지됩니까? 기대하지 않는 가치가 있습니까? ... –

+0

tableadapter.Update가 호출되면 수정 된 행을 찾고 수정 된 각 행에 대해 어댑터의 UpdateCommand 객체를 호출하여 데이터row에 대한 필드를 전달합니다. SQL에있는 내용을 확인할 수 있습니다 귀하의 UpdateCommand 개체에 대한. –

+0

토마스, 나는 데이터 자체가 데이터베이스로 돌아 가지 않을 것이고, 그것은 테이블에 표시 될 것이지만 실제 데이터베이스에는 나타나지 않는다는 것을 의미한다. Rick, 좋은 점은 알지만, 내가 추가 한 코드는 외부 클래스가 없으며 UpdateCommand 개체를 찾을 수있는 곳이 너무 명확하지 않습니다. 필요한 경우 GitHub에서 전체 프로젝트를 척으로 처리하여 좀 더 철저하게 살펴볼 수 있습니다. –

답변

0

나는 당신이 찾고있는 것을 생각하지만 미안하지만 도움을 줄 수 없다.

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) 

{ 

bindingSource1.EndEdit();  
DataTable dt = (DataTable)bindingSource1.DataSource; 
tableTableAdapter1.Update(dt); 

} 
관련 문제