為DataGrid中的行增加序號!

來源:互聯網
上載者:User
datagrid 有時,你需要為在DataGrid中顯示每行的序號,如果使用Oracle資料庫,你可以利用RowNum在Select命令中構造行序號,然後直接綁定到DataGrid,但是如果用的是SQL Server資料庫,那麼,該如何為Datagrid中增加行序號呢?



ADO.NET中通過DataColumn的3個屬性來支援自動增量列:AutoIncrement,AutoIncrementSeed,AutoIncrementStep。只要將DataColumn的AutoIncrement設定為True即可以為DataTable的新行產生自動增量值。看個例子:

DataSet ds=new Dataset();
DataTable dt=ds.Tables.Add("Orders");
DataColumn col=dt.Columns.Add("OrderID",typeof(int));
col.AutoIncrement=true;
col.AutoIncrementSeed=-1;
col.AutoIncrementStep=-1;
col.ReadOnly=true;

上面OrderID列被設為自動增量,注意後面接下來兩句,其值都被設為-1,其中有一定的原因。 AutoIncrementSeed和AutoIncrementStep控制著如何產生新值。當遇到空表時,ADO.NET 會將儲存在AutoIncrementSeed中的值賦給第一行自動增量列,接著AutoIncrementStep產生後續的自動增量值。

原因:ADO.NET中產生的自動增量值僅僅是一個預留位置,在資料庫中會產生真正的新值,顯示出來的僅僅是未提交給資料庫的新行自動增量值,資料庫可能會根據產生的值來產生不同的值。AutoIncrementSeed和AutoIncrementStep都設為-1,可以確保產生的預留位置值不會出現在資料庫。

所以在使用AutoIncrement的時候應將AutoIncrementSeed和AutoIncrementStep都設為-1。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。