C# 以编程方式刷新数据库?

C# 以编程方式刷新数据库?,c#,wpf,visual-studio-2010,C#,Wpf,Visual Studio 2010,我的WPF程序中有一个本地Microsoft SQL Server Compact 3.5数据库(.sdf) 在我的datagrid中,我看到了“旧”数据。只有在VisualStudio2010的数据库资源管理器中单击“刷新”,才能看到新插入的数据 如何以编程方式刷新数据库连接 要明确的是: 在加载我的程序时,我使用SQL查询将数据放入数据库,如INSERT INTO clients VALUE(2,Peter,Smith) 然后我调用een一个tableAdapter.Fill(dataset

我的WPF程序中有一个本地Microsoft SQL Server Compact 3.5数据库(.sdf)

在我的datagrid中,我看到了“旧”数据。只有在VisualStudio2010的数据库资源管理器中单击“刷新”,才能看到新插入的数据

如何以编程方式刷新数据库连接

要明确的是:

在加载我的程序时,我使用SQL查询将数据放入数据库,如
INSERT INTO clients VALUE(2,Peter,Smith)
然后我调用een一个
tableAdapter.Fill(dataset.clients)
this.DataContext=dataset.clients.DefaultView


我希望数据集中的dataTable将填充我在一秒钟前插入数据库的数据。之后,数据将显示在dataGrid中。但这不会发生。我只看到插入的数据,如果我停止调试并按下(在设计时)数据库Explorer EN的刷新按钮,然后再次调试…

< P>如果您试图从SQL CE数据库绑定,请考虑使用数据绑定的代码。这将确保您的数据在网格上始终“新鲜”。下面是一些示例代码

SqlConnection con=newsqlconnection();
SqlDataAdapter ad=新的SqlDataAdapter();
SqlCommand cmd=新的SqlCommand();
String str=“从员工中选择员工ID、姓氏、姓氏、出生日期、城市、国家”;
cmd.CommandText=str;
ad.SelectCommand=cmd;
con.ConnectionString=“数据源=MyData.sdf;持久安全信息=False”;
cmd.Connection=con;
数据集ds=新数据集();
ad.Fill(ds);
ListViewEmployeeDetails.DataContext=ds.Tables[0].DefaultView;
con.Close();
....

听起来好像您希望在设计时在网格中看到“新鲜”数据。“在数据库资源管理器中单击刷新”表示您正在查看的设计图面

如果不是,那么您在数据库资源管理器和运行时的任何语句都没有意义。网格应该在有意义的事件(表单加载、用户单击按钮、用户插入行)上重新填充/数据绑定。用户不/不应该知道数据库资源管理器。让网格显示最新数据的正确方法是
myGrid.DataBind()

如果是这样的话,我可以建议它不应该/不应该真的很重要,因为网格上显示的数据只是一个“占位符”。如果您确实想查看新数据,那么您唯一的选择就是按照您的建议,通过数据库资源管理器“刷新”


你所看到或期待的东西还不清楚。建议用您的代码编辑您的问题,并用一些屏幕截图进行说明。

如果您通过T-SQL插入一些数据,您的数据网格将不会刷新。必须在网格上调用数据绑定,例如:

DataGrid1.DataBind(); //if you want the data to be refreshed.
我不确定您是如何设置的,但假设您有一个按钮,可以在单击时插入数据。在click事件中,插入数据后,只需调用:

DataGrid1.DataBind(); //and you should see your data refreshed.

DataGrid1
重命名为您所称的DataGrid控件。

您的要求没有多大意义。要刷新应用程序中的数据,请重新查询数据库。要在数据库资源管理器中刷新,请单击此处的“刷新”。您的意思是在数据库资源管理器中插入数据,但在单击“刷新”之前数据不会提交?@Kieren我通过一些SQL代码插入数据,但它不会显示在我的dataGrid中。只有在数据库资源管理器中按下“刷新”按钮并再次调试时,才会显示数据。是否打算在“设计时”进行此刷新?因此,请澄清,您在数据资源管理器中看到的过期数据与您在运行的应用程序中看到的数据完全相同?那么,您正在运行的应用程序中进行的查询返回的是过期数据?您是如何进行该查询的?也许这就是问题所在,但是.databind()不存在!我是在WPF中制作的,我该怎么做(对不起,我是初学者。)您是否在DataGrid xaml中指定ItemSource=“{Binding}”。您对insert做了什么。你在按按钮吗?你能帮我寄密码吗?
DataGrid1.DataBind(); //and you should see your data refreshed.