• 締切済み

VBのDATAGRIDVIEWについて

環境VB.net 初心者です。教えていただきたのですが Datagridviewを使用しループ処理で全行の単価セル内に数字の0を追加したいのですが1行目のセルのみ値が追加されません。(2行以降は全て追加されます)コードは下記の通りです。 For CNT = 0 To マスタテーブルCNT マスタテーブルdatagridview("単価", CNT).Value = 0 Next ご教授お願いします。

みんなの回答

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

マスタテーブルdatagridview.Rows(CNT).Cells("単価").Value = 0 では無理ですよね?

関連するQ&A

  • DataGridViewへの新規行追加について(VB2008)

    VB2008ExpressEdition,DBはAccess2003の環境にて小規模な業務アプリの開発を行っている者です。 VBを使用してまだ2週間足らずですので、初歩的な質問かもしれませんが、よろしくお願いします。 テーブルの内容を明細表示し、登録ボタンを押すとDB更新を 行うような簡単なマスタメンテナンス画面があるとします。 明細表示のため、フォーム上にDataGridViewを作成、 DataSouceプロパティを指定し、型付きDataSetをBindさせました。 AllowUserToAddRowsプロパティはTrueとし、DataGridView上への 新規行追加も可能としてあります。 このとき、プログラムを動作させ複数行新規追加を行うと、 2行目の行追加のタイミングで、 「データの登録時にエラーが発生しました。 列「〇〇」は一意であるように制約されています。 値〇は既に存在します。」 というエラーになってしまい、行追加が1行以上行えません。 新規行追加時、エラー対象とされている列はDefault値Nullと なっており、その値Nullの行を複数作成する操作なので キー重複でこのようなエラーとなっているかと思いますが、 自分としてはこのようなエラーを出さず、 画面上では明細を複数行新規追加を可能としたいのです。 (キー値は最終的に更新時にマスタから値を取得、採番してカラムにセットし登録する。 また、キー重複チェックも後でロジックを組んで行う。) このエラーチェックを行わないようにする設定、 もしくは回避方法等ありますでしょうか?

  • VB.netのDataGridViewについて

    VB.netのDataGridViewについての質問です。 DataGridViewで出力された行を選択して、 その行の値をテキストボックスなどに出力させることは可能なのでしょうか? やりたいことは 1.データベースより取得してきたDatatableをDataGridViewに出力 2.出力されたDataGridViewの行を選択する 3.その選択された行の項目(複数)の値を画面上の個々の   テキストボックスなどに反映させる です

  • VB2005のDataGridViewについて

    プログラム側からはいろいろなセルに値を入力できて、 でも、ユーザー側からは行しか選択させない、かつ編集させないっていう方法ありますか? DataGridViewのSelectionModeをFullRowSelectにすると、 選択方法が行だけになるんですが、 入力もColumnIndexが0でないと、セルに値が入力できなくなってしまうんです。(つまり、1行につき1つのセルにしか入力できない) なんかいい方法はありますか?

  • VB2008、Insertのループをかけたいのですが・・・

    初の質問になりますが、よろしくお願いします。 現在、VB2008にて、DataGridViewに入力した内容を、Insertで登録処理をするという作業を行っているのですが、変わった現象が起きてしまうのです。 まず、ボタンクリックのイベントで、DataGridViewの内容を一行づつ取り込み、Insertのループを行うと言うものなのですが、 DataGridViewにある列は、'日付','出勤時間',退社時間','~~と続くのですが、日付だけしか一行づつ取り込めず、それ以外の列項目は、値の入っている列までしか取り込めないんです。 たとえば、二行目まで値を入れ、三行目からはすべてのCellをNullの状態にしてInsertのループをかけると、二行目にしか入らない値が、三行目以降まで続いてしまうんです。これってどういうことでしょうか、、、ちなみに日付だけはきちんとInsertされるのです。どなたかお分かりになる方いらっしゃらないでしょうか。 ちなみにこれがソースです。 For r As DataGridViewRow in DataGridView1.Rows 日付 = DataGridView1(0, r.Index).Value If IsDBNull (DataGridView1(9, r.Index).Value) = False Then 出勤時間 = DataGridView1(9, r.Index).Value Else If IsDBNull(DataGridView1(5. r.Index).Value) = False Then 出勤時間 = "0" End If '列が多いので、省略します。 'ここからInsert sql = "Insert into Time Seet" sql &= "Values (" sql &= "'" & 日付 & "'" : : Next r という形です。列が長いので、だいぶ省略しましたので伝わりにくいかと思いますが、よろしくお願いします。 ちなみに他のサイトでは、 ループの外側でパラメータクエリを作成して、ループの中ではパラメータの設定とSQLの実行のみにすればよいです。 と言われましたが、パラメータクエリというのがイマイチ理解できなかったので・・・ できればそれらに関する情報や考え方なども教えてくださるとうれしいのですが・・・よろしくお願いします。

  • datagridviewに行追加し、値を入れたいです。VB.NET 

    'データグリッドの選択された値を変数frowに代入する。 frow = DataGridView1.SelectedCells.Item(0).Value 'データグリッドの選択された値を変数srowに代入する。 srow = DataGridView1.SelectedCells.Item(1).Value 'データグリッドに新しい行を追加する。 KYU70000_1.DataGridView1.Rows.Add(DataGridView1.Rows) KYU70000_1.DataGridView1.Rows.Add(DataGridView1.Rows) '選択された値をKYU70000_1のデータグリッドに代入する。 frow = KYU70000_1.DataGridView1.SelectedCells.Item(0).Value ←ここがインデックスが範囲を超えています、となります。 srow = KYU70000_1.DataGridView1.SelectedCells.Item(1).Value どうすれば良いのでしょうか?教えてください。意味が分かりません。

  • vb.netでDataGridViewの背景色の変更について

    初心者ですがよろしくお願いします。 現在DataGridViewにデータを表示できたのですが 背景色の変更ができません。 '編集したDataTableをDataGridViewにセットする DataGridView.DataSource = dt 'DataGridViewにユーザーが新しい行を追加できないようにする DataGridView.AllowUserToAddRows = False '行ヘッダーを非表示にする DataGridView.RowHeadersVisible = False 'DataGridViewの1番目の列を読み取り専用にする DataGridView.Columns(0).ReadOnly = True 'DataGridViewの2番目の列を読み取り専用にする DataGridView.Columns(1).ReadOnly = True 'DataGridViewの3番目以降の列のセルのテキストの配置を上下中央で右寄せする For dateIndex As Integer = 0 To monthList.Count - 1 DataGridView.Columns(2 + dateIndex).DefaultCellStyle.Alignment = _ DataGridViewContentAlignment.MiddleRight Next 'インデックス0の行のセルの背景色を薄い灰色にする DataGridView.Rows(0).DefaultCellStyle.BackColor = Color.LightGray と記述しております。 Rowsの部分をCulumsに変えると縦の色を変えることはできるのですが 何故かRowsだと横の色が変化しません 環境としましては Microsoft Visual Basic 2008 Express Edition VB.NET です ご教授、よろしくお願いします。

  • VB.NET DataGridView 行の追加

    VB2010 WinXPにて開発しています。 「DataGridView1.Rows.Add()」で行を追加すると入力行の上の行が追加されるのは何故でしょうか? 下らない質問かと思いますが、行き詰まってます。 分かる方がいましたら、教えて下さい。 よろしくお願い致します。

  • DataGridView(1,1).Valueの型について

    VB2008を使っています。 DataGridView(1,1).Valueの型はそのセルのデータによって TypeName( DataGridView(1,1).Value) は異なると思いますが、 DataGridView(1,1).Valueの型は何でしょうか? Dim v As DataGridViewCell = DataGridView(1,1).Value で良いのでしょうか?

  • DataGridViewでコードで値を入力したい

    VB2005のDataGridViewですが、行と列を指定して そのセルに値を入力したいと思いますが、どのプロ パティに行番号・列番号を入れればいいのでしょうか?

  • DataGridViewで教えてください。

    DataGridViewで教えてください。 VB初心者ですが どうかよろしくお願いいたします。 VB2005で DataGirdView(dgv1)の始めの行を 他のDataGridView(dgv2)に追加したいのですが、 うまくいきません。 どうすればよいのでしょうか? すみませんが、 教えてください。 よろしくお願いします。 Dim Table As DataTable Dim MainTable As DataTable Dim row As DataRow Table = DirectCast(dgv1.DataSource, DataTable) MainTable = DirectCast(dgv2.DataSource, DataTable) row = MainTable.NewRow row = Table.Rows(0) MainTable.Rows.Add(row)

専門家に質問してみよう