数据库未更新C#

数据库未更新C#,c#,sql,winforms,C#,Sql,Winforms,我正试图将文本框中的数据保存到数据库中,新数据会显示在网格中,但不会显示在数据库表中。当我关闭应用程序并重新启动它时,网格中出现的数据就会消失。没有错误,但没有上传数据。如果我硬编码路径,但我想使用DataDirectory,以便它可以在其他计算机上使用,它就可以工作。数据库设置为“复制(如果更新)”(对于“复制到输出”目录)。有人能帮忙吗 if (dialogResult == DialogResult.Yes) { SqlCommand cmd;

我正试图将文本框中的数据保存到数据库中,新数据会显示在网格中,但不会显示在数据库表中。当我关闭应用程序并重新启动它时,网格中出现的数据就会消失。没有错误,但没有上传数据。如果我硬编码路径,但我想使用DataDirectory,以便它可以在其他计算机上使用,它就可以工作。数据库设置为“复制(如果更新)”(对于“复制到输出”目录)。有人能帮忙吗

if (dialogResult == DialogResult.Yes)
        {
            SqlCommand cmd;
            SqlConnection con;

            con = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = |DataDirectory|\TestDatabase.mdf;Integrated Security=True");
            con.Open();
            cmd = new SqlCommand("INSERT INTO Patient (FirstName, LastName, DOB) VALUES (@FirstName,@LastName,@DOB)", con);

            cmd.Parameters.AddWithValue("@FirstName", txtFirstName.Text);
            cmd.Parameters.AddWithValue("@LastName", txtLastName.Text);
            cmd.Parameters.AddWithValue("@DOB", dateTimePicker1.Text);
           
            cmd.ExecuteNonQuery();
            con.Close();
           
            SqlDataAdapter SqlDA = new SqlDataAdapter("SELECT * FROM Patient", con); 
            DataTable dtbl = new DataTable();
            SqlDA.Fill(dtbl);

            dataGridView1.DataSource = dtbl;
}

请澄清。您正在插入[Patient]表,但正在从[Users]表进行查询。它们相关吗?看起来每次构建数据库时,您的数据库都会被覆盖,您使用的是哪种数据库?您确定这一切正常吗?您正在关闭连接,然后才尝试重新读取数据。您是否有查看数据库中表的工具?您可能会发现记录在那里,但您只是没有使用SqlDataAdapter选择任何内容。@Cᴏʀʏ
SqlDataAdapter
也会打开连接本身,因此无需调用
con.Open()
con.Close()之后