私は C#、Windows フォーム、およびデータグリッド ビューを初めて使用します。タブ付きのフォームがあります。タブ 1 には、演習テーブルのデータグリッドビューが表示されます。タブ 2 は、テーブルに新しいエクササイズを追加するためのものです。演習テーブルは、test_ExercisesDataSet、vwexercisesBindingSource、vw_ExercisesTableAdapter を介してデータグリッド ビューにバインドされます。
タブ 1 に戻ったときに datagridview を更新するためにバインディング ソースを再バインド/更新するために何をする必要があるかわかりません。フォームを完全に閉じて再起動すると、新しい行が表示されます。テーブル。
Web と StackOverflow の両方で多くの例を見てきましたが、何が間違っているのかまだわかりません。
ところで、私は Visual Studio 2010 を使用しています。
どんな助けでも大歓迎です!!
ありがとう!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace testTabbedInterface
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public string GetConnectionString()
        {
            return connString;
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'test_ExercisesDataSet.vw_exercises' table. You can move, or remove it, as needed.
            this.vw_exercisesTableAdapter.Fill(this.test_ExercisesDataSet.vw_exercises);
            exerciseListDataGridView.DataSource = this.test_ExercisesDataSet.vw_exercises;
        }
        private void InsertExercise(string exerciseName, string exerciseDescription, string exerciseBegin)
        {
            var conn = new SqlConnection(GetConnectionString());
            const string InsertExerciseSql = @"INSERT INTO database.dbo.exercises
                (PK_exerciseUID,
                exerciseName,
                exerciseDescription,
                exerciseBegin,
                exerciseEnd) 
                VALUES 
                (@PK_exerciseUID,
                @exerciseName,
                @exerciseDescription,
                @exerciseBegin,
                NULL)";
            try
            {
                SqlCommand cmd = new SqlCommand(InsertExerciseSql, conn);
                var param = new SqlParameter[4];
                Guid exerciseGUID = Guid.NewGuid();
                param[0] = new SqlParameter("@PK_exerciseUID", exerciseGUID);
                param[1] = new SqlParameter("@exerciseName", exerciseName);
                param[2] = new SqlParameter("@exerciseDescription", exerciseDescription);
                //Convert date(s) to correct format
                DateTime exerciseBeginConverted = Convert.ToDateTime(exerciseBegin);
                param[3] = new SqlParameter("@exerciseBegin", exerciseBeginConverted);
                foreach (SqlParameter t in param)
                {
                    cmd.Parameters.Add(t);
                }
                conn.Open();
                cmd.CommandType = CommandType.Text;
                cmd.ExecuteNonQuery();
                MessageBox.Show("Test/Exercise, " + exerciseName + ", successfully added!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (SqlException ex)
            {
                string msg = "Error inserting into 'exercises': ";
                msg += ex.Message;
                throw new Exception(msg);
            }
            finally
            {
                conn.Close();
            }
        }
        private void saveExerciseButton_Click(object sender, EventArgs e)
        {
            InsertExercise(exerciseName.Text, exerciseDescription.Text, exerciseBegin.Text);
            this.exerciseListDataGridView.EndEdit();
            tabControl1.SelectTab("testExerciseTab");
        }
        private void addExButton_Click(object sender, EventArgs e)
        {
            tabControl1.SelectTab("exerciseTab");
        }
        private void reloadExListButton_Click(object sender, EventArgs e)
        {
            this.exerciseListDataGridView.Refresh();  
        }
    }
}