C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[12]: DataGridViewについて


(過去ログ 75 を表示中)

[トピック内 13 記事 (1 - 13 表示)]  << 0 >>

■44469 / inTopicNo.1)  DataGridViewについて
  
□投稿者/ 陽子 (6回)-(2009/12/09(Wed) 21:23:18)

分類:[.NET 全般] 

dim CONNECTION as SQLConnection
CONNECTION= New SqlConnection _
("Data Source=Server1;" _
& "Initial Catalog=" & "看護師勤務表" _
& ";User ID=sa;password=''")
CONNECTION.Open()



dim DataSet = New DataSet
dim SQLSTR as string = "select * from [勤務表マスタ] where ID between 1 and 1000"
dim Adapter = New SqlDataAdapter(SQLSTR, CONNECTION)
Adapter.Fill(DataSet, "勤務表マスタ")
dim table = DataSet.Tables("勤務表マスタ")
Me.DataGridView1.DataSource = table



Dim column As New DataGridViewButtonColumn()
column.Name = "Button"
column.UseColumnTextForButtonValue = True
column.Text = "詳細閲覧"

Me.DataGridView1.Columns.Add(column)

とし、DataGridView1の中身を設定したのですが、コマンドボタン(BOTAN1)をクリック時にDataGridView1の中身を更新したいのですが、BOTAN1のクリック時にどのような記述をしたらいいのですか?
引用返信 編集キー/
■44473 / inTopicNo.2)  Re[1]: DataGridViewについて
□投稿者/ gtk2k (119回)-(2009/12/09(Wed) 22:17:29)
2009/12/09(Wed) 22:17:50 編集(投稿者)

もうちょっと情報がほしい。
詳細閲覧ボタンをクリックすると、クリックされた行の背景の色を変えたいとか?
引用返信 編集キー/
■44475 / inTopicNo.3)  Re[2]: DataGridViewについて
□投稿者/ 陽子 (7回)-(2009/12/09(Wed) 22:26:42)
すいません説明不足でした。DataGridViewの中身を変更し、BOTANのコマンドボタンをクリックすると変更した中身が反映されるようにしたいです。
Me.Validate()
Me.Dataset.GetChanges()
Me.TableAdapterManager.UpdateAll(Me.看護師勤務表DataSet)
を使用せずに変更することって可能ですか?
又、詳細閲覧ボタンは特に無視していただいて結構です。
DataGridViewの中身の変更ができればOKです。
色々調べてみたんですが、ボタンクリック時に
Adapter.Update(Dataset.Tables("勤務表マスタ"))
を記述したらエラーが出ました…。
引用返信 編集キー/
■44476 / inTopicNo.4)  Re[3]: DataGridViewについて
□投稿者/ 陽子 (8回)-(2009/12/09(Wed) 22:29:26)
Botan1はデータグリッドビューの中にはありません。Botan1をクリックするとデータグリッドビューの中身が(テーブルの中身が)更新され、かつ、このフォームを閉じるようにしたいです。よろしくおねがいします。
引用返信 編集キー/
■44479 / inTopicNo.5)  Re[4]: DataGridViewについて
□投稿者/ gtk2k (120回)-(2009/12/09(Wed) 22:38:29)
DataGridView1.DataBind()
を実行していないとか?
引用返信 編集キー/
■44480 / inTopicNo.6)  Re[5]: DataGridViewについて
□投稿者/ 陽子 (9回)-(2009/12/09(Wed) 22:43:04)
DataGridView1.DataBind()はどこで記述したらいいんですか?
フォーム読み込み時ですか??
引用返信 編集キー/
■44482 / inTopicNo.7)  Re[6]: DataGridViewについて
□投稿者/ gtk2k (121回)-(2009/12/09(Wed) 22:49:36)
No44480 (陽子 さん) に返信
> DataGridView1.DataBind()はどこで記述したらいいんですか?
> フォーム読み込み時ですか??

Buttonのクリック時。

一番最初のコードはForm_Loadイベント内に記述してるの?

引用返信 編集キー/
■44483 / inTopicNo.8)  Re[7]: DataGridViewについて
□投稿者/ 陽子 (10回)-(2009/12/09(Wed) 22:57:02)
一番最初のコードはLOAD時です。
DataGridView1.DataBind()をBOTAN1クリック時イベントに書いてみたんですが、書き方がわかりません。
DataGridView1.DataBind()と素直に書いたら青波線が出ちゃいます。
DataGridView1.DataBindingsかと思ったんですが、これでも出ちゃいます。

どういう風に書いたらいいんですか…
引用返信 編集キー/
■44484 / inTopicNo.9)  Re[8]: DataGridViewについて
□投稿者/ gtk2k (122回)-(2009/12/09(Wed) 23:04:28)
No44483 (陽子 さん) に返信
> 一番最初のコードはLOAD時です。
> DataGridView1.DataBind()をBOTAN1クリック時イベントに書いてみたんですが、書き方がわかりません。
> DataGridView1.DataBind()と素直に書いたら青波線が出ちゃいます。
> DataGridView1.DataBindingsかと思ったんですが、これでも出ちゃいます。
>
> どういう風に書いたらいいんですか…

ごめん、私が勘違いしていた。

BOTAN1クリック時にtableオブジェクトのデータを書き換得ればいいと思うが

tbl.Rows[0][0] = "best";
引用返信 編集キー/
■44485 / inTopicNo.10)  Re[9]: DataGridViewについて
□投稿者/ 陽子 (11回)-(2009/12/09(Wed) 23:09:23)
でも複数行書き換えて、その後BOTAN1をクリックするのでBOTAN1クリック時に複数行一気に更新したいんですが…
引用返信 編集キー/
■44487 / inTopicNo.11)  Re[10]: DataGridViewについて
□投稿者/ gtk2k (123回)-(2009/12/09(Wed) 23:43:45)
2009/12/09(Wed) 23:55:34 編集(投稿者)
2009/12/09(Wed) 23:53:48 編集(投稿者)
2009/12/09(Wed) 23:44:45 編集(投稿者)

No44485 (陽子 さん) に返信
> でも複数行書き換えて、その後BOTAN1をクリックするのでBOTAN1クリック時に複数行一気に更新したいんですが…


ああ、DataAdapterのUpdateCommandを設定していないからDataAdapterのUpdateメソッドでエラーが発生しているんだろう。
これを自動でやってくれるのがCommandBuilderで、
SELECTコマンドから自動でINSERT、UPDATE、DELETEコマンドを生成してくれる。
ただし、SELECTで取得する列に最低限キーの列が含まれていないといけない(もちろん取得するテーブルにキー列がなければいけない)。
CommandBuilderを使わなくてもSqlDataAdapterのUpdateCommandに
Adapter.UpdateCommand = "update [勤務表マスタ] set ・・・・"
と、UpdateCommandを直接設定してもいい。

Dim SQLSTR as string = "select * from [勤務表マスタ] where ID between 1 and 1000" ←ここで取得する列にキーを入れる今回は*なのでOK

Dim Adapter As SqlDataAdapter = New SqlDataAdapter(SQLSTR, CONNECTION)
の次の行に
Dim cmdBuilder As SqlCommandBuilder = New SqlCommandBuilder(Adapter)
を追加する。

BOTAN1のクリックイベントで
Adapter.Update(Ctype(DataGridView1.DataSource, DataTable))
を行えばいけると思われ。

引用返信 編集キー/
■44523 / inTopicNo.12)  Re[11]: DataGridViewについて
□投稿者/ 陽子 (12回)-(2009/12/10(Thu) 21:07:31)
gtk2kさん
ありがとうございます。
完璧にできました。
すっきりしました
解決済み
引用返信 編集キー/
■44526 / inTopicNo.13)  Re[12]: DataGridViewについて
□投稿者/ Jitta (616回)-(2009/12/10(Thu) 23:17:35)
No44523 (陽子 さん) に返信
> gtk2kさん
> ありがとうございます。
> 完璧にできました。
> すっきりしました

すっきりしているところになんですが。

 ん〜、「看護師勤務表」って、ちょっと...
 「勤務表」くらいは大丈夫だと思いますが、職種が出るのは、どうかと思います。
というより、この先、うっかり個人情報などを出してしまわないか、心配です。
というか、もう、やばいのが出てますね。

> ";User ID=sa;password=''"
 これはダメです。ユーザー 'sa' は、プログラムで使ってはいけません。
特にウェブ アプリケーションですから、必要な権限の設計をしましょう。
また、sa にパスワード無しも厳禁です。


あれ?DataGridView?ウェブ アプリケーションなのに?それとも、.NET Framework 1.x?

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -