2017-01-30 15 views
-1

データベースに接続されたDataGridViewをいくつかのテキストボックスとボタンを使用してDBに追加することを試みています。私はそれがテーブルを更新することができますが、データベースを正しく更新することができません。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オブジェクトが呼び出され、SQLの内容を確認することができますあなたのUpdateCommandオブジェクト。 –

+0

トーマス、私はデータ自体がデータベースに戻らないことを意味しました。それはテーブルに表示されますが、実際のデータベースには表示されません。リック、知っておいてくださいが、あなたが見るコードは私が追加したものです。外部クラスもありませんし、UpdateCommandオブジェクトがどこにあるのかもあまりよく分かりません。必要ならば、私はGitHubでプロジェクト全体をチャックして、より徹底した見た目を持つことができます。 –

答えて

0

私はこれをあなたが探していると思いますが、残念ながら私は助けなかったと思います。

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) 

{ 

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

} 
関連する問題