Visual Studio 2010中未更新DataSet

时间:2014-08-05 09:21:57

标签: c# visual-studio-2010 visual-studio

我是visual studio-2010的新手。我正在尝试创建一个从sql数据库读取数据并在datagrid上显示的应用程序。我实现了我在互联网上找到的代码。

这是sql_button_Click函数

private void sql_button_Click(object sender, RoutedEventArgs e)
    {
         string ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename='C:\\Users\\jakkulv\\Downloads\\VS projects\\employee\\employee\\SampleDatabase.mdf';Integrated Security=True;Connect Timeout=30;User Instance=True";
        string SQL = "select emp_id,first_name from employee";
        SqlConnection conn = new SqlConnection(ConnectionString);
        // open the connection
        conn.Open();
        //Create a SqlDataAdapter object
        SqlDataAdapter adapter = new SqlDataAdapter(SQL, conn);
        // Call DataAdapter's Fill method to fill data from the
        // Data Adapter to the DataSet
        DataSet ds = new DataSet("employee"); //database table name is "employee"
        ds.Clear();
        adapter.Fill(ds);
        // Bind data set to a DataGrid control
        dataGrid1.ItemsSource = ds.DefaultViewManager;


        if (ds.HasChanges(DataRowState.Added))
        {
            // New rows have been added to the dataset, add appropriate code.
            MessageBox.Show("data set has changes");
        }
        else
        {
            MessageBox.Show("data set has no changes");
            // No new rows have been added to the dataset, add appropriate code.
        }

但是当我执行相同操作时,它会显示消息框,说“数据集没有变化”。

为什么数据集没有更新?如何更新它?

1 个答案:

答案 0 :(得分:0)

您的代码将始终显示带有data set has no changes的消息框,因为它没有任何更改。

数据与数据库中的数据相同,并且由于您尚未修改数据,删除任何记录或添加任何记录,因此没有任何更改。

就像MSDN docs

一样
  

获取一个值,该值指示DataSet是否有更改,包括已删除已修改行。

尝试修改它,然后调用ds.HasChanges(),您将看到它将返回true。