- PR -

行の挿入をするには・・・?

1
投稿者投稿内容
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2004-06-17 11:08
いつもお世話になります。
質問する側ばかりで申し訳ありません・・・。

過去レス
「DataTableに関して」
「Winアプリ データバインディングしたComboBoxへのデータ追加」
を参考にさせて頂きテストを行っているのですが、不明な点があり
まして投稿させて頂きました。
(過去レス参照の際の提示方法はこれで宜しいでしょうか?)

やりたいことはDataGridの任意の位置に行を挿入するということです

過去レスを参照させて頂き

Dim dr As DataSet.tbl_TestRow = DataSet1.tbl_test.NewRow

dr("A") = TextBox1.Text
dr("B") = TextBox2.Text
dr("C") = TextBox3.Text

Dstest1.tbl_test.Rows.InsertAt(dr,n) nは任意の数字です

SqlDataAdapter1.Update(Dstest1)
SqlDataAdapter1.Fill(Dstest1, "tbl_test")

と書いたところ。最終行への追加はできるのですがnの位置への追加となりません。

tbl_Testに主キーが設定されていて昇順に並び替えられるのが
原因かな?と思いまして主キーを取ったりして実験していますが
どうも見当違いの様子でありまして・・・。

何か根本的に間違えているとは思うのですが、ご指摘頂ければ幸いです。


(先日Hasumi様よりご教授頂きましたPublic Class ModifiedComboBox
の件につきましては継続勉強中であります)
えムナウ
大ベテラン
会議室デビュー日: 2004/06/10
投稿数: 187
お住まい・勤務地: 東京
投稿日時: 2004-06-17 12:14
データベースは一般的に明示的に順番を決めてやらない限り表示順はわからない、と思ってください。
つまり「ORDER BY」を指定しない限り表示順を変えることは出来ないのです。
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2004-06-17 12:48
えムナウ様

ご返答いただきましてありがとうございます。

ということは、DataGridへ挿入の際も、テーブルに
何もキーがなくても明示的に並び替えるなどを
しなくてはいけないということですね(違っていたら
すいません)

早速調べてみます。
ありがとうございました。
えムナウ
大ベテラン
会議室デビュー日: 2004/06/10
投稿数: 187
お住まい・勤務地: 東京
投稿日時: 2004-06-17 17:21
主キーがあってもなくても、
あなたの思う並べ方をSqlDataAdapter1のSelectCommandのCommandTextに「ORDER BY句」として追加しなければなりません。
どんなにソート順をいじってもあなたの思う並べ方を実現できないならば、並べ方を実現するための項目を新たに作成しなければなりません。

#SqlDataAdapter1.Fill の前に Dstest1.Clear は必要と思いますが・・・
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2004-06-18 10:47
えムナウ様

ご返信ありがとうございました。

>並べ方を実現するための項目を新たに作成しなければなりません。

おっしゃるように項目を一つ追加してSortさせることで対応することに
しました。なかなか思うような動作が出来ず四苦八苦しました(笑)

>#SqlDataAdapter1.Fill の前に Dstest1.Clear は必要と思いますが・・・

すいません、掲示板へのコピー漏れでありました(笑)


色々と教えていただきましてありがとうございました。
しっかりと勉強に励みます。
1

スキルアップ/キャリアアップ(JOB@IT)