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

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

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

DataGridViewで更新・追加・削除方法

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

■90015 / inTopicNo.1)  DataGridViewで更新・追加・削除方法
  
□投稿者/ 2月 (1回)-(2019/01/30(Wed) 23:09:53)

分類:[C#] 

WinFormでDataGridViewを使いたいのですが、Update、Deleteについてわかりません。
下記のようにフォームをロード時にデータベースに接続して、データを取り出しデータセットにセット。
そのデータセットをDataGridViewに紐付けるところまでは理解できました。

やりたい事は、DataGridView内のセルの値を変更したり、行を追加したり削除した場合、元のデータベースに情報を反映させる方法がわかりません。
例えば、btnTourokuというボタンを押すことによりDataGridView上で追加・削除・更新された情報をデータベースに接続してデータベースに反映されたいと思います。

こちらのサイトを見ると、DataGridView中で変更、削除された場合は行のステータスがAdded、Modified、Deletedに変更になることはわかりました。
http://okwakatta.net/code/ado09.html
DataGridViewを1行づつ見ていき、Added、Modified、Deletedになっている行があれば、それに対応したSQL文を作成し行毎にSQLを発行していく形になるでしょうか?

宜しくおねがいします!


using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace WindowsApplication1
{
public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();
}

SqlConnection connection = new SqlConnection();
SqlCommand command = new SqlCommand();
DataSet ds = new DataSet();

// 接続文字列を設定します。
connection.ConnectionString = @"Data Source=PC\SQLEXPRESS1;Initial Catalog=TestDatabase;User Id=sa;Password=sa;";

private void Form1_Load(object sender, EventArgs e)
{
using (SqlDataAdapter adapter = new SqlDataAdapter())
{
command.Connection = connection;
command.CommandText = "SELECT * FROM 社員";

adapter.SelectCommand = command;

// SQLを実行し結果をdsの中に格納します。
adapter.Fill(ds);
}
}
}
}
引用返信 編集キー/
■90017 / inTopicNo.2)  Re[1]: DataGridViewで更新・追加・削除方法
□投稿者/ WebSurfer (1733回)-(2019/01/31(Thu) 06:59:53)
No90015 (2月 さん) に返信

開発環境(OS, .NET, Visual Studio, SQL Server のバージョンなど)を書いてください。

Visual Studio に備わっている TableAdaptet 構成ウィザードを利用すれば、自力では一行もコードを書かなくても、SQL Server のテーブルのレコード一覧を DataGridView に表示し、それをユーザーが編集し、編集結果をSQL Server に反映するアプリを作れます。そういうのは考えないのですか?
引用返信 編集キー/
■90027 / inTopicNo.3)  Re[1]: DataGridViewで更新・追加・削除方法
□投稿者/ WebSurfer (1736回)-(2019/01/31(Thu) 12:40:41)
No90015 (2月 さん) に返信

上の回答で書いた Visual Studio のウィザードを使う方法を紹介しておきます。

勉強のためとかの理由で、どうしても SqlDataAdapter を使って自力でコードを書きた
いという場合はその旨連絡ください。(それでも、ウィザードが自動生成するコードを
見れば今後の開発の参考になると思いますが・・・)


以下のチュートリアル、

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

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

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

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

操作に慣れると 10 分もかからず作れるはずです。自力で一からコードを書く場合のよう
な種々の問題に悩むことはなくなり、開発工数は激減するはずです。保守工数も減るはず
です。お試しください。
引用返信 編集キー/
■90030 / inTopicNo.4)  Re[2]: DataGridViewで更新・追加・削除方法
□投稿者/ 2月 (1回)-(2019/01/31(Thu) 14:56:56)
Win 7,vs 2015, .netframework4.5になります。データベースはmySQLです。TableAdapterを使えば簡単にできるのは学習しましたが、dataadapterを使った方法を学びたくて質問させて頂きました。
引用返信 編集キー/
■90031 / inTopicNo.5)  Re[2]: DataGridViewで更新・追加・削除方法
□投稿者/ 2月 (2回)-(2019/01/31(Thu) 14:59:54)
ご提示頂きました方法を一度学習してみたいと思います。有り難うございます&#10071;
引用返信 編集キー/
■90033 / inTopicNo.6)  Re[3]: DataGridViewで更新・追加・削除方法
□投稿者/ WebSurfer (1737回)-(2019/01/31(Thu) 16:14:48)
No90031 (2月 さん) に返信

> TableAdapterを使えば簡単にできるのは学習しましたが、
> dataadapterを使った方法を学びたくて質問させて頂きました。

> ご提示頂きました方法を一度学習してみたいと思います。

どういうことでしょう?

TableAdapter ウィザードを使って作ってみて、そのコードを参考に自力で SqlDataAdapter を
使ったコードを書いてみるので、それまで回答は不要いうことと理解して良いのでしょうか。
引用返信 編集キー/
■90050 / inTopicNo.7)  Re[4]: DataGridViewで更新・追加・削除方法
□投稿者/ 2月 (3回)-(2019/02/01(Fri) 13:51:10)
dataadapterを使った方法も是非勉強の為に知りたいです!宜しくおねがいします。
引用返信 編集キー/
■90051 / inTopicNo.8)  Re[5]: DataGridViewで更新・追加・削除方法
□投稿者/ WebSurfer (1741回)-(2019/02/01(Fri) 13:58:38)
No90050 (2月 さん) に返信

> SqlConnection connection = new SqlConnection();

> Win 7,vs 2015, .netframework4.5になります。データベースはmySQLです。

最初の質問では SqlCOnnection などを使っていたので DB は SQL Server だと思っていたのですが、あと
から書かれた情報では MySQL とのこと。どちらが正しいのですか?
引用返信 編集キー/
■90052 / inTopicNo.9)  Re[6]: DataGridViewで更新・追加・削除方法
□投稿者/ 2月 (4回)-(2019/02/01(Fri) 14:18:36)
利用しているデータベースはMySQLです。

MySQLConnectionと書くべきでした。失礼しました。
引用返信 編集キー/
■90054 / inTopicNo.10)  Re[7]: DataGridViewで更新・追加・削除方法
□投稿者/ WebSurfer (1742回)-(2019/02/01(Fri) 14:38:17)
No90052 (2月 さん) に返信
> 利用しているデータベースはMySQLです。
>
> MySQLConnectionと書くべきでした。失礼しました。

ということは、一番最初の質問のコードは SQL Server 用ということで、MySQL を使った場合は何もできてない
ということですか?

MySQL 本体はもちろん、Connector/NET, MySQL for Visual Studio などドライバや開発に必要なコンポーネント
はインストールしてあるのでしょうか? もし、まだならそれをまずインストールしてください。話はそれから
です。

もし、インストール済みで Visual Studio から MySQL に接続して開発できるようになっているなら、現在どこ
までできているかコードをアップして(もちろん MySqlConnetion などを使ったもの)説明してください。
引用返信 編集キー/
■90055 / inTopicNo.11)  Re[7]: DataGridViewで更新・追加・削除方法
□投稿者/ WebSurfer (1743回)-(2019/02/01(Fri) 14:45:02)
No90052 (2月 さん) に返信

最新バージョンでは直っているかもしれませんが、自分が MySQL Installer 5.7.17 を使ってインストール
したものは、Visual Studio のウィザードが使う MySql.Data.dll のバージョン 6.9.8 と、GAC の
MySql.Data.dll のバージョン 6.9.9 に不一致があって、それが原因でウィザードが期待通り動かないこと
がありましたので注意してください。

その場合の対応方法は以下の記事を見てください。

MySQL での TableAdapter 構成ウィザード不具合
http://surferonwww.info/BlogEngine/post/2018/02/10/tableadapter-configuration-wizard-does-not-work-properly-for-mysql.aspx
引用返信 編集キー/

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


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

このトピックに書きこむ