4

Windowsフォームアプリケーションに4つのテキストボックスと、グリッドビューと「追加」というボタンがあります。私が望むのは、[追加]ボタンをクリックすると、4つのテキストボックスに入力されたデータが同じ行のdatagridviewの4つの異なる列に移動することです。テキスト ボックスをクリアし、再度入力して [追加] ボタンをもう一度クリックすると、データはグリッドビューの 2 行目に表示されます。

4

4 に答える 4

0

このコードを使用します:

 namespace WindowsFormsApplication1
 {
     public partial class Form1 : Form
    {
        DataSet ds = new DataSet();
        SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Dataset;Integrated Security=True");
        SqlDataAdapter ds1 = new SqlDataAdapter();

        BindingSource bd = new BindingSource();

        public Form1()
        {
            InitializeComponent();
        }

       private void btnAdd_Click(object sender, EventArgs e)
      {
        ds1.InsertCommand = new SqlCommand("INSERT INTO Employee VALUES(@FirstName,@LastName)", con);
        ds1.InsertCommand.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = txtFirstName.Text;
        ds1.InsertCommand.Parameters.Add("@LastName", SqlDbType.VarChar).Value = txtLastName.Text;

        con.Open();
        ds1.InsertCommand.ExecuteNonQuery();
        con.Close();
    }

    private void btndisplay_Click(object sender, EventArgs e)
    {
        ds1.SelectCommand = new SqlCommand("Select * from Employee", con);
        ds.Clear();
        ds1.Fill(ds);

        dataGridView1.DataSource = ds.Tables[0];

        bd.DataSource = ds.Tables[0];

        //txtFirstName.DataBindings.Add("Text", bd, "FirstName");
        //txtLastName.DataBindings.Add("Text", bd, "LastName");

    }

    private void btnPervious_Click(object sender, EventArgs e)
    {
        bd.MovePrevious();
        update();
        records();
    }

    private void btnNext_Click(object sender, EventArgs e)
    {
        bd.MoveNext();
        update();
        records();
    }

    private void btnFirst_Click(object sender, EventArgs e)
    {
        bd.MoveFirst();
        update();
        records();
    }

    private void btnLast_Click(object sender, EventArgs e)
    {
        bd.MoveLast();
        update();
        records();
    }

    private void update()
    {
        dataGridView1.ClearSelection();
        dataGridView1.Rows[bd.Position].Selected = true;
        records();
    }
    private void records()
    {
        label1.Text = "records" + bd.Position + " of " + (bd.Count - 1);

    }

この回答をマークアップすることを忘れないでください

于 2013-02-08T12:02:00.973 に答える
0

手順:

1) DataGrid ビューをバインドしたら、DataSource を Viewstate 変数に保存します。

2) Add Button の Click イベントを定義する Click イベントでは、データソースを持つ Viewstate 変数を呼び出して、DataTable としてキャストします。そのデータテーブルの新しい行を作成し、新しい行のセルに値を割り当てます。この新しい行を Datatable に追加し、dataTable を ViewSate に再度保存し、データソースを DataGrid にバインドします。

以上です〜

于 2012-10-20T18:37:30.677 に答える
0

まず SHAKIR SHABBIR 氏に感謝しますが、Windows フォーム アプリケーションにはビューステートがないと思うので...

静的コレクション型を使用することをお勧めします...

入力フォームのクラスを定義し、foreach テキストボックスに変数を定義できます。追加ボタンをクリックすると、クラスのオブジェクトが作成され、すべての値がテキストボックスに設定され、行がグリッドに挿入され、すべての行データが保存されます (クラスごとのオブジェクトリスト内の gridview 行)

静的データテーブルを使用することもできます...テキストフィールドごとに列を作成する必要があります..データテーブルに行を追加します..グリッドのデータソースを選択します...

さらに助けが必要な場合は、いつでもお手伝いします..

于 2012-10-20T20:19:57.060 に答える