我是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.
}
但是当我执行相同操作时,它会显示消息框,说“数据集没有变化”。
为什么数据集没有更新?如何更新它?
答案 0 :(得分:0)
您的代码将始终显示带有data set has no changes
的消息框,因为它没有任何更改。
数据与数据库中的数据相同,并且由于您尚未修改数据,删除任何记录或添加任何记录,因此没有任何更改。
就像MSDN docs说
一样获取一个值,该值指示DataSet是否有更改,包括新,已删除或已修改行。
尝试修改它,然后调用ds.HasChanges()
,您将看到它将返回true。