我用的還是同一個資料源,不過就是想重繪一下,使DataGrid重新加載,可是我重新加載后,出現了重復的記錄,有沒有什么辦法先清空DataGrid
uj5u.com熱心網友回復:
判斷資料是否存在,如果不存在,執行加載,如果存在,直接回傳資料。uj5u.com熱心網友回復:
重新加載? 用的什么方法資料系結你不需要清空DataGrid
需要的只是把資料源里資料弄對就行了,估計是資料源里出現了重復的記錄
uj5u.com熱心網友回復:
private void PRODUCT_Click(object sender, RoutedEventArgs e){
string sql = "SELECT ProID,ProName,ProMarketPrice,ProPrice,ProAmount,ProSales FROM products"; //SQL陳述句
SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, conn); //定義一個dataAdapter
dataAdapter.Fill(dataSet, "商品表"); //填充資料集
this.DataGrid_messager.ItemsSource = dataSet.Tables["商品表"].DefaultView; //填充資料進控制元件
}
我在這個按鈕添加了事件,點擊這個按鈕,會在DataGrid中顯示出資料表,但是重復點擊的話,之前的資料不會消失,而是會重復出現這個表的資料,想問一下,有沒有辦法先清空先前的資料表
uj5u.com熱心網友回復:
使用的什么組件?可以先賦值nulluj5u.com熱心網友回復:
用的是DataGrid,是C# wpf的,試過了,不能設定為空值。uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
我猜是你DataSet被重復填充了。dataAdapter.Fill(dataSet, "商品表"); //填充資料集 // 這里dataSet可能還有舊的資料
你可以新建一個dataSet,看看問題是否存在。
如果你沒有設好主鍵,多次Fill是會造成重復資料。具體見微軟檔案
https://docs.microsoft.com/zh-cn/dotnet/api/system.data.common.dbdataadapter.fill
uj5u.com熱心網友回復:
我的資料表存在主鍵的,但是它仍然重復出現,每點擊一次運行,就加載一次uj5u.com熱心網友回復:
感謝大家,我解決問題了,我在這個函式里面第一句加了清空dataset。uj5u.com熱心網友回復:
重繪一下控制元件轉載請註明出處,本文鏈接:https://www.uj5u.com/net/24505.html
標籤:C#
