こんにちは私はいくつかの記事を読んでいますが、私が求める答えは得られません。私は2倍の処理をしたいと思っています。 1.クエリーからデータグリッドビューを取り込みます。クエリーを実行するボタンを使用してテーブルに直接移入するのではなく、テーブルに移入します。 2.データグリッドの値を変更してデータベースに戻ると、変更が反映されます。私が遭遇している問題は、変化するかもしれない静的な宇宙を持っていないと仮定していると見なす例です。私はすでに人口の部分を知っていましたが、データベースへの接続に「datagridviewをどのように使用しているのか不思議です。私が現時点で示していることを変更して元のデータベースに保存してください。Windowsフォームの結果の変更をSQLデータベースに取り込むDataGridView
コード私はわずかに従いました: http://www.switchonthecode.com/tutorials/csharp-tutorial-binding-a-datagridview-to-a-database彼らはAccessメソッドを使用していましたが、SQLを使用していますが、それほど重要ではありません。
EG:1つのプロセスインスタンスにdataAdapter要素を設定できますが、もう1つのインスタンスはそれを認識できません。私はあなたがデータセットでドラッグアンドドロップすることでこれらを非常に簡単に行うことができるので、何かができると考えています。たぶん私は間違っていると思いますし、静的な要素や動的な要素を設定する必要があります。私が本当に望むのは、VALUEの値を別のものに変更して、バインディング元のデータベースに戻すことができることを証明することです。しかし、バインディングソースは別のインスタンスでは不明であり、いくつかのものを静的に設定すると、それらを定義した方法で失敗しました。どんな助けも大変ありがとう!ありがとう!
PRE SET UP:
として定義され、単一のテーブルと 'テスト' データベースの作成:
表テスト(ID int型アイデンティティ、VALUEのVARCHAR(2))を作成 テストに挿入
Visual Studio 2010でWindowsフォームアプリケーションを作成する(明示的に何もしていないと思われるため、2008年以前に動作するはずです) .NET 4.0)。 Windowsフォームには2つのボタンが必要です。 'btnPopulate' b。 'btnUpdate';テキストボックス: 'txtquery'はテキストで埋められます: 'select * from Test';とdatagridview: 'gridview'です。
フォームの後ろに使用される実際のコード:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace DataGridTestDBUpdater
{
public partial class TestDataGrid : Form
{
public string con = "Integrated Security=SSPI;Persist Security Info=False;Data Source =(local);Initial Catalog=Test";
public TestDataGrid()
{
InitializeComponent();
}
private void btnPopulate_Click(object sender, EventArgs e)
{
string query = txtquery.Text;
using (SqlConnection cn = new SqlConnection(con))
{
using (SqlCommand cmd = new SqlCommand(query, cn))
{
using (SqlDataAdapter adapter = new SqlDataAdapter())
{
using (DataTable table = new DataTable())
{
cn.Open();
using (BindingSource bs = new BindingSource())
{
adapter.SelectCommand = cmd;
adapter.Fill(table);
bs.DataSource = table;
gridview.DataSource = bs.DataSource;
}
cn.Close();
}
}
}
}
}
private void btnUpdate_Click(object sender, EventArgs e)
{
using (BindingSource bs = new BindingSource())
{
bs.DataSource = gridview.DataSource;
using (DataTable table = new DataTable())
{
using(SqlDataAdapter adpt = new SqlDataAdapter())
{
bs.DataSource = gridview.DataSource;
/// ALL OF MY WORK IS FAILING FROM HERE ON ///
/// WANT TO GET UPDATE TO WORK HERE: ///
///
///adpt.Update(bs.DataSource);
}
}
}
}
}
}
ちょっと移動したときに自動的にテーブルを同期させることができます(Visual Studio 2010 Professionalのデフォルトを前提としています)。1.データメニュー>新規データの追加2.データベース3.データセット4. ConfigConnection DB。 5.設定を保存します。 6.使用するオブジェクト(テーブル、関数、プロシージャ)などを選択します。7.設定を保存します。 8.(データソース)の下の[設定]を選択します。Shift + Alt + D 9.ドラッグ&ドロップ設定。 10.これは、通常、保存アイコンをクリックするとデータベースに通知する保存アイコン付きのメニューバーを表示します。私はただそれをしたいが、テーブルではなくデータセットで。 - ジャンゴジャズ – djangojazz