0

データベース内のテーブルからカスタム アイテムを表示する C# WinForms に dataGridView があり、そのテーブルに新しい行を挿入するためのテキスト ボックスとボタンがあります。ボタンをクリックすると、テキストボックスのテキストがテーブルに挿入されます。挿入後、dataGridview は新しいアイテムをリロードして表示することもできます。私はdataGridView1.Update();andを使いdataGridView1.Refresh();ません。

dataGridView で新しいアイテムを挿入できることはわかっていますが、途中でアイテムを挿入したいと考えています。それはクリックイベントの私のコードです:

private void button1_Click(object sender, EventArgs e)
        {
            String connString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\bank.mdf;Integrated Security=True;User Instance=True";
            SqlConnection conn = new SqlConnection(connString);
            SqlCommand cmd = new SqlCommand();
            String cmdText = "insert into marja (ayatollah) values(@n)";
            cmd.CommandText = cmdText;
            cmd.Parameters.AddWithValue("@n", textBox4.Text);

            cmd.Connection = conn;
            conn.Open();
            if (cmd.ExecuteNonQuery() > 0)
            {
                dataGridView1.DataSource = marjaBindingSource;
                textBox4.Text = "آیت الله ";
            }

            else
                MessageBox.Show("Error");
            conn.Close();
        }
4

3 に答える 3

0
this.marjaTableAdapter.FillBy(this.bankDataSet10.marja);

それは私の答えです

于 2013-03-16T09:18:21.443 に答える
0

メソッドを使用DataBindして をリロードする必要がありdatagridviewます。

あなたのステートメントの後に以下のコード行を使用するDataGridView1としIDましょう。datagridviewInsert

DataGridView1.DataSource = yourDataSource;  

RefreshUpdateメソッドはここであなたの目的を果たしません。

詳細については、このリンクをすべてお読みください。

コードを次のように変更できますか:

private void button1_Click(object sender, EventArgs e)
{
    int rowsAffected = 0;
    String connString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\bank.mdf;Integrated Security=True;User Instance=True";
    SqlConnection conn = new SqlConnection(connString);
    SqlCommand cmd = new SqlCommand();
    String cmdText = "insert into marja (ayatollah) values(@n)";
    cmd.CommandText = cmdText;
    cmd.Parameters.AddWithValue("@n", textBox4.Text);

    cmd.Connection = conn;
    conn.Open();
    rowsAffected = cmd.ExecuteNonQuery();
    conn.Close();

    if (rowsAffected > 0)
    {
         dataGridView1.DataSource = marjaBindingSource;
         textBox4.Text = "آیت الله ";
    }

    else
    {
         MessageBox.Show("Error");
    }
}
于 2013-03-16T07:14:21.277 に答える
0

データバインディングを試して、おそらくデータをObservableCollectionに入力する必要があります。更新を手動で呼び出す必要はありません。すべて自動的に行われます。

この投稿も参照してください:リストボックスのコンテンツをリロードする

于 2013-03-16T07:14:49.763 に答える