DataGridの行に通し番号をつけたいと考えているのですが方法がわかりません。
行の追加、削除を行っても1からN(Nはデータ数)まで
1・2・3・5・6・7のように4が抜けたりということが無いように
行いたいのですが、何か良い方法があるのでしょうか?
VB.NETで作成していて、DBはACCESS2002を使用してます。
宜しくお願い致します。
データベースの方に主キーの項目があれば、可能です。
以下のソースを参考にして下さい。
尚、[ID]と表記されている部分は、主キーの項目名です。
※ Access2002 で動作確認しました
Dim OleSQL As String
Dim OleDB As OleDb.OleDbConnection
Dim OleCMD As OleDb.OleDbCommand
Dim OleDS As DataSet
Dim OleAD As OleDb.OleDbDataAdapter
OleSQL = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\Test.mdb;Persist Security Info=False"
OleDB = New OleDb.OleDbConnection(OleSQL)
OleDB.Open()
OleSQL = "SELECT "
OleSQL += "DCount('*','TEST','[ID] <= ' & [ID]) AS '連番',"
OleSQL += "* "
OleSQL += "FROM TEST "
OleSQL += "WHERE DCount('*','TEST','[ID] <= ' & [ID])"
OleCMD = New OleDb.OleDbCommand
OleCMD.Connection = OleDB
OleCMD.CommandType = CommandType.Text
OleCMD.CommandText = OleSQL
OleDS = New DataSet
OleAD = New OleDb.OleDbDataAdapter
OleAD.SelectCommand = OleCMD
OleAD.Fill(OleDS, "TEST")
OleCMD.Dispose()
DataGrid1.DataSource = OleDS
DataGrid1.DataMember = "TEST"
OleAD.Dispose()
OleDS.Dispose()
OleDB.Close()
OleDB.Dispose()
以上。
岡田 之仁 様。
いつも助けていただき本当にありがとうございます。
出来れば列名みたいに数字を行ごとに振りたいのですが。。。
それは自分でNo.みたいな列を作ってそこに何行目かをあらわす数字を
表示していくしか方法はありませんか?
一番左の列(グレーになっているところ。)に数字を表示することってできませんか?
海外サイトですが・・・
http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#q896q
この件にて、可能です。
要は、オーナードロウで、実現させています。
ご参考までに・・・
以上。