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

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

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

DataGridViewで選択行の複写を行いたい

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

■83710 / inTopicNo.1)  DataGridViewで選択行の複写を行いたい
  
□投稿者/ 広告デザイナー志望 (1回)-(2017/04/04(Tue) 09:12:21)

分類:[.NET 全般] 

環境/言語:[VB.net .NetFW4.6 VS2012] 

初めまして!システム系の仕事に配属されて数か月の素人です。
VB.NETでの質問です。
DataGridViewで明細内のボタンで選択した行の内容をコピーした新規行を生成するという記述が作れず困っています。
DataGridView1.Rows.Add(DataGridView1.CurrentRow)と書くと
InvalidOperationException{"指定された行は DataGridView コントロールに既に属しています。"}と表示されてしまいます。
本来データベースは重複行を受け付けない仕様だとは思うのですが、複写という専用ボタンが設計書に乗っており、
全ての項目が同じ行を生成するのが必要とのことです。プログラム自体はVB+SQLで作られており、データベースの登録内容の編集を行ったり新規行を作成する保守画面です。
どなたか同じ内容の行の複写を行う記述をご存じでしたら、ご教示よろしくお願い致します。
引用返信 編集キー/
■83711 / inTopicNo.2)  Re[1]: DataGridViewで選択行の複写を行いたい
□投稿者/ shu (998回)-(2017/04/04(Tue) 09:23:37)
No83710 (広告デザイナー志望 さん) に返信

新しい行を作成して各項目内容をすべてコピーする。

DataTableとくっついているなら
tbl.ImportRow(CurrentRow)

> 本来データベースは重複行を受け付けない仕様だとは思うのですが
扱いが面倒なだけで受けつけないとは限らない。
主キーとなる項目は別途もうけるべきだとは思う。



引用返信 編集キー/
■83715 / inTopicNo.3)  Re[1]: DataGridViewで選択行の複写を行いたい
□投稿者/ WebSurfer (1211回)-(2017/04/04(Tue) 10:26:48)
No83710 (広告デザイナー志望 さん) に返信

質問者さんのアプリがどのような構成になっているか、最終的な目的を果たせるかどうか不明なの
でのでハズレかもしれませんが・・・

SQL Server などの DB を元に Visual Studio のウィザードを使ってアプリを作ると、以下の記事
で「図2」の「(b) VS2005 でのデータベース・アクセス」の構成になると思います。

もしそのような構成になっているのであれば、その図の「DataSet コントロール」に行を追加す
ることを考えてはいかがでしょうか?

Part6 .NETで,データベース・プログラムはこう作る
http://itpro.nikkeibp.co.jp/article/COLUMN/20070320/265659/
引用返信 編集キー/
■83721 / inTopicNo.4)  Re[2]: DataGridViewで選択行の複写を行いたい
□投稿者/ 広告デザイナー志望 (2回)-(2017/04/04(Tue) 16:47:15)
No83711 (shu さん) に返信

> 扱いが面倒なだけで受けつけないとは限らない。
> 主キーとなる項目は別途もうけるべきだとは思う。

ありがとうございます。特別イレギュラーという訳では無いのですね。

No83715 (WebSurfer さん) に返信

> もしそのような構成になっているのであれば、その図の
>「DataSet コントロール」に行を追加することを考えてはいかがでしょうか?

ありがとうございます。こちらのDataSet コントロールの図も初見で役に立ちそうです。


お二方のアドバイスを参考に色々と試してみようと思います。ありがとうございました。
引用返信 編集キー/
■83739 / inTopicNo.5)  Re[3]: DataGridViewで選択行の複写を行いたい
□投稿者/ WebSurfer (1212回)-(2017/04/05(Wed) 10:52:09)
No83721 (広告デザイナー志望 さん) に返信

> ありがとうございます。こちらのDataSet コントロールの図も初見で役に立ちそうです。

どのような構造のアプリを作っているのか分かりませんが、できれば一度 Visual Studio
のウィザードを使って、Windows Forms アプリで DataGridView を使った時の定番の構成
のアプリを作ってみてはいかがでしょう?

ウィザードが自動生成するコードを見れば今後の開発の参考になると思います。

DB が SQL Server の場合ですが、以下のチュートリアル、

チュートリアル : データベースへのデータの保存 (単一テーブル)
https://msdn.microsoft.com/ja-jp/library/0f92s97z(v=vs.120).aspx

10 行でズバリ !! 非接続型のデータ アクセス (ADO.NET) (C#)
https://code.msdn.microsoft.com/windowsdesktop/10-ADONET-C-cbfe7688

・・・のように Visual Studio のデータソース構成ウィザードを利用して型付 DataSet
+ TableAdapter を作って、それを利用してアプリを作ると、以下のページの図のような
構造のアプリが、ほとんど自分でコードを書くこと無しに作れます。

Windows フォーム アプリケーションでのデータへの接続
https://msdn.microsoft.com/ja-jp/library/wxt2cwcc(v=vs.120).aspx

操作に慣れると 10 分もかからず作れるはずです。

これをベースにできれば開発工数は激減するはずです。保守工数も減るはずです。お試し
ください。

引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ