2011-05-12 125 views
4

我使用DataAdapter填充DataSetSQL CE數據庫。數據顯示在綁定到DataSet的DataTable的DataGrid上。我在我的DataSource中有一個自動增量ID字段(或在SQLCE中,稱爲PRIMARY KEY IDENTITY);相應地,我還在我的DataTable中設置了一個AutoIncrement ID列。重置DataTable中的自動增量

/* when DataTable is first populated, start counting from Rows.Count */ 
/* if empty, starts with 1 */ 
dt.Column["id"].AutoIncrementSeed = dt.Rows.Count + 1; 

問題來了,當我清除我的數據表。我想AUTOINCREMENT計數器的值重置爲1,但不能,我試過如下:

/* clearing and disposing DataTable, DataSet, DataAdaptor does not reset the counter */ 
dt.Clear(); 
dt.Dispose(); 
ds.Clear(); 
ds.Dispose() 
da.Dispose() 

/* manually re-setting the AutoIncrementSeed also does not reset the counter */ 
dt.Column["id"].AutoIncrementSeed = 1; 

它剛剛離開它Clear()之前離開櫃檯。如何重置DataTable中的AutoIncrement?

回答

1

我已經簡化代碼,該版本:

dt.Column["id"].AutoIncrement = True 
dt.Column["id"].AutoIncrementSeed = 0 
dt.Column["id"].AutoIncrementStep = -1 
dt.Column["id"].AutoIncrementSeed = -1 

這對我好,因爲種子和步驟的-1值。 我認爲實現AutoIncrementSeed財產就是這樣:

if (_AutoIncrementSeed <> value) 
    _InternalAutoIncrementSeed = value 
_AutoIncrementSeed = value 

和_InternalAutoIncrementSeed在NEWROW功能使用。