0

SQL データベースから datagridview にデータをフェッチしましたが、ユーザーが datagridview のデータを変更した後、データをアップロードして戻すにはどうすればよいですか?

また、次のようなコードを見つけました。

this.dataGridView1.Update();

このメソッドは何を更新しますか? データを datagridview にバインドするコードは次のとおりです。

SqlDataReader read;
SqlCommand cmd;
DataTable dt = new DataTable();
cmd = new SqlCommand("Select * from Table", 204.192.49.3);
read = cmd.ExecuteReader();
dt.Load(read);
dataGridView1.DataSource = dt;
4

4 に答える 4

0

最も簡単な方法は、一時的な DataSet を作成し、SqlDataAdapter を使用してデータを入力し、dataGridView の DataSource として渡すことです。このコードはトリックを行う必要があります: DataSet temp = new DataSet(); SqlDataAdapter SDA = new SqlDataAdapter(); SqlCommand command = new SqlCommand(); SqlConnection connection = new SqlConnection(); string connstring = "YourConnectionString";

次に、更新をトリガーするメソッドで次のようにします。

`connection.Open();
 command.CommandText = "SELECT * FROM Table" //Adjust the SQL query to your needs
 command.Connection = connection;
 SDA.SelectCommand = command;
 SDA.Fill(temp);
 dataGridView1.DataSource = temp.Tables[0].DefaultView;`

これで問題が解決するはずです。

于 2012-06-21T07:21:26.237 に答える
0

この「this.dataGridView1.Update();」で年グリッドを更新することはできません dbのデータを更新した後、グリッドビューをdbにバインドする必要があるコード

于 2012-06-21T06:39:08.637 に答える
0
private void dataGridVies1_CellValidated(object sender, DataGridViewCellEventArgs e)
{
        SqlCommandBuilder cb = new SqlCommandBuilder(sda);
        sda.Update(ds);
}

public partial class Form2 : Form
{

       private void Form2_Load(object sender, EventArgs e)
    {
        con.ConnectionString = connectionstr;

        sda = new SqlDataAdapter("select * from table_user", con);//define dataadapter
        sda.Fill(ds );
        dataGridView1.DataSource = ds.Tables[0];//bind the data,now the datagridview can show up the data

    }
    string connectionstr = "integrated security=SSPI;Initial Catalog=****;Data Source=localhost;";//init

    SqlConnection con = new SqlConnection();//
    SqlDataAdapter sda = new SqlDataAdapter();//

    DataSet ds = new DataSet();
    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {

    }

    private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
        //you can not update sda here

    }

    private void button1_Click(object sender, EventArgs e)
    {

    }

    private void dataGridVies1_CellValidated(object sender, DataGridViewCellEventArgs e)
    {
        SqlCommandBuilder cb = new SqlCommandBuilder(sda);//auto generate the cmd of create, delete and update 
        sda.Update(ds);//flush to database
     }


}
于 2012-06-21T06:48:13.770 に答える
0

これを行うには、データグリッドに Datasource プロパティと SqlDataAdapter を入力しました。adapter オブジェクトを更新するだけです。

于 2012-06-21T06:38:12.177 に答える