...Visual Studio 2015\Projects\MyHomePage 用サンプル \Database(Access2)\Database(Access2)\MainForm.cs 2 れを含めておかないと Database への更新がきかない oadp.fill(dtbl); dgvk

Similar documents
VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

C#の基本2 ~プログラムの制御構造~

スライド 1

ファイル操作

ウィンドウ操作 応用

プロセス間通信

C#の基本

Visual Studio2008 C# で JAN13 バーコードイメージを作成 xbase 言語をご利用の現場でバーコードの出力が必要なことが多々あります xbase 言語製品によっては 標準でバーコード描画機能が付加されているものもあるようで す C# では バーコードフォントを利用したりバー

データアダプタ概要

ICONファイルフォーマット

WPF アプリケーションの 多言語切替

TOEIC

ファイル監視

NotifyIconコントロール

2016 VOCALOID Group, Yamaha Corporation 2

Visual Studio2008 C# で FoxPro に似た数値入力を行う xbase 言語製品が市場から撤退するにつれ FoxPro や他の xbase 言語ツールでアプリ ケーション開発を行っていらした方にとって どの開発言語を選択するかということ が緊急の課題になっていることと存じます

MVP for VB が語る C# 入門

VGB Kinect v2 VGB VGB Kinect v2 3 VGB VGB Discrete Continuous 2 Discrete : Jump, Sit, NicoNii AdaBoost (Confidence) Visual Studio 2013 or 2012 () Kine

問題 1 次の文章は Access データベース およびデータベースの概要について述べたものである にあてはまる適切なものを解答群 { } より選び その記号で答えよ 設問 1. Microsoft Access 2007 データベースのテーブルでは 表す としてデータを { ア. レコードを列 フ

Microsoft PowerPoint - 【HB-1000】キーボードマウス操作マニュアル.ppt [互換モード]

Section1_入力用テンプレートの作成

A, K, Q, J, 10, 9, 8, 7, 6, 5, 4, 3,

PowerPoint プレゼンテーション

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

Word2013基礎 基本操作

TestDesign for Web

Abstract Kinect for Windows RGB Kinect for Windows v Kinect for Windows v2

文字入3-2 力3 文字入力について ひらがな 漢字 カタカナ 英数字 記号 絵文字などが入力できます 文字入力方式には モード 1( かな方式 ) モード2(2タッチ方式 ) モード3( ニコタッチ方式 ) の3 種類があります. 本書では モード1( かな方式 ) での入力例を中心に記載します

Microsoft PowerPoint pptx

シンプルスマホ3 ユーザーガイド

mySQLの利用

このルールをそのまま正規表現として書くと 下記のようになります ^A[0-9]{2}00[0-9]{3}([0-9]{2})?$ ちょっと難しく見えるかもしれませんが 下記のような対応になっています 最初 固定 年度 固定 通番 ( 枝番 ) 最後 ルール "A" 数字 2 桁 0 を 2 桁 数字

平成 29 年度卒業研究 初心者のためのゲームプログラミング用 教材の開発 函館工業高等専門学校生産システム工学科情報コース 5 年 25 番細見政央指導教員東海林智也

ALG ppt

mazec テクニカルガイド第5版(Android版)

アルゴリズムとデータ構造1

VFD256 サンプルプログラム

API 連携方式 外部 DLL の呼び出し宣言 外部 DLL の呼び出し宣言のサンプルコード (Microsoft Visual C#.NET の場合 ) プログラムコードの先頭で using System.Runtime.InteropServices; が必要 クラスの内部に以下のような外部 D

Dolteng Scaffoldに対する機能追加とマスタ-ディテールScaffoldの紹介

<4D F736F F D B B B838B D836A B5F835F E646F63>

文字入3-2 力3 文字入力について ひらがな 漢字 カタカナ 英数字 記号 絵文字などが入力できます 文字入力方式には モード1( かな方式 ) モード2(2タッチ方式 ) モード3( ニコタッチ方式 ) の3 種類があります 本書では モード1( かな方式 ) での入力例を中心に記載します モー

住所録を整理しましょう

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

データベースアクセス

文字入3-2 力3 文字入力について ひらがな 漢字 カタカナ 英数字 記号 絵文字などが入力できます ❶ ❷ ❸ ❶ 入力モード切替操作漢 : 漢字 ひらがな入力モード 1 カナ : カタカナ入力モード英 : 英字入力モード数 : 数字入力モード ❷ 全角 / 半角切替操作全 : 全角入力モード

ダウンロードしたフゔルを実行し 下記の Visual Studio 2008 セットゕップ画面が表示すれば 次へ ボタンを押します 同意する を選択し DreamSpark から発行されたプロダクトキーと名前を入力します そして 次へ のボタンを押します ンストールする機能 は 既定 を選択し ンス

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第8版  

「不動産リスト」を解く

< 目次 > 1. 練習ファイルのダウンロード 表計算ソフト Excel の基本 Excel でできること Excel の画面 セル 行 列の選択 セルにデータを入力する ( 半角英数字の場合 )

データグリッドビュー

目次 はじめに... 3 システムの必要条件... 4 ライセンス認証... 4 アクティベーション... 6 開発... 7 手順 1. アプリケーションの作成... 7 手順 2. データソースの作成と代入... 7 手順 3. テンプレートの作成 手順 4. レポートビューアの追加

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

WCF と IIS を使用して OData プロデューサーを作成する

グラフィックトレーニング 概要.NET のグラフィック描画は どんなことができるのでしょうか? グラフィックオブジェクトやグラフィック環境 概念を理解するためには クラスを使って馴れることが近道です 本 書に記載されているコードをカットアンドペーストして 一つ一つの機能を体験してください 前提 グラ

スレッド操作 タイマー

「やさしいエクセル《

シンプルスマホ2 ユーザーガイド

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第7版   None

文字入力 ソフトウェアキーボードを切り替える...56 文字入力画面の見かた...56 文字を入力する...58 文字入力の便利な機能を利用する...60 iwnn IME の設定を行う

Transcription:

...Visual Studio 2015\Projects\MyHomePage 用サンプル \Database(Access2)\Database(Access2)\MainForm.cs 1 /* Database(Access) とやりとりするその 2 DataGridView による編集 */ 2015.9.21~9.23 仕様 DataGridView 上でデータのさまざまな直接編集が行えるようにする しかし その際 イリーガルなデータ ( 段位は 4~9 の半角 1 文字 ) は最初から受け付けないようにする レコードの追加 削除を可能にする 編集結果保存終了 編集結果破棄終了の 2 つが選べるようにする 編集列により IME モードの切り替えを自動的に行う using System; using System.Data; using System.Data.OleDb; using System.IO; using System.Windows.Forms; namespace Database_Access2_ public partial class MainForm : Form public MainForm() InitializeComponent(); Saved = true; // 変更があれば false, なければ true DataTable dtbl = new DataTable(); // DataGirdView に表示するデータが入る DataTable OleDbConnection ocon; OleDbDataAdapter oadp; private void MainForm_Load(object sender, EventArgs e) ocon = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\"" + Path.GetDirectoryName (Application.ExecutablePath) + "\\test2.accdb\""); oadp = new OleDbDataAdapter("SELECT ID, 現役, 氏名, 段位 FROM TestTable ORDER BY ID", ocon); // ID 列は表示しないが こ

...Visual Studio 2015\Projects\MyHomePage 用サンプル \Database(Access2)\Database(Access2)\MainForm.cs 2 れを含めておかないと Database への更新がきかない oadp.fill(dtbl); dgvkishi.datasource = dtbl; dgvkishi.rowheadersvisible = false; // レコードセレクタを表示しない dgvkishi.allowusertoresizerows = false; // 行の高さを変えさせない dgvkishi.columns[0].visible = false; // 1 列目の ID 列は表示しない dgvkishi.columns[3].defaultcellstyle.alignment = DataGridViewContentAlignment.MiddleCenter; // 段位 の表示はセンタリング dgvkishi.columns[1].width = 40; // 列の表示幅を指定 dgvkishi.columns[2].width = 100; dgvkishi.columns[3].width = 40; ((DataGridViewTextBoxColumn)dgvKishi.Columns[3]).MaxInputLength = 1; // 段位 の入力文字数を 1 文字に制限する btnsave.enabled = false; // ImeMode を 氏名 列ではひらがなに あとの列は半角英数モードにする private void dgvkishi_cellenter(object sender, DataGridViewCellEventArgs e) dgvkishi.imemode = e.columnindex == 2? ImeMode.Hiragana : ImeMode.Disable; // 段位 列は半角数字の 4~9 しか入力できないようにする private void dgvkishi_editingcontrolshowing(object sender, DataGridViewEditingControlShowingEventArgs e) if (e.control is DataGridViewTextBoxEditingControl) var dgv = (DataGridView)sender; var txt = (DataGridViewTextBoxEditingControl)e.Control; txt.keypress -= new KeyPressEventHandler(dataGridViewTextBox_KeyPress); if (dgv.currentcell.owningcolumn.name == " 段位 ") txt.keypress += new KeyPressEventHandler(dataGridViewTextBox_KeyPress);

...Visual Studio 2015\Projects\MyHomePage 用サンプル \Database(Access2)\Database(Access2)\MainForm.cs 3 private void datagridviewtextbox_keypress(object sender, KeyPressEventArgs e) if (e.keychar < '4' e.keychar > '9') // 4~9 キーでないときははじく e.handled = true; else // 4~9 キーのときは受け入れる // セルの内容に変化があったときは 保存されていない 状態にし 保存終了 ボタンを使用可にする // ただし このイベントは 表示 1 列目の 現役 チェックボックスを変化させ 他のセルに移っていない状態や 表示 3 列目の 段位 テキストボックスで数字だけ入力しても確定 (Enter キー TAB キーなどを押すとか他のセルに移るとか ) していない状態では拾えない private void dgvkishi_cellvaluechanged(object sender, DataGridViewCellEventArgs e) // 現役 チェックボックスに変化があったとき private void dgvkishi_keydown(object sender, KeyEventArgs e) // スペースキーのとき if (dgvkishi.currentcell.columnindex == 1 && e.keycode == Keys.Space) private void dgvkishi_cellcontentclick(object sender, DataGridViewCellEventArgs e) // 現役 チェックボックスがマウスクリックのとき if (dgvkishi.currentcell.columnindex == 1)

...Visual Studio 2015\Projects\MyHomePage 用サンプル \Database(Access2)\Database(Access2)\MainForm.cs 4 // データを 1 件削除 int TargetRowN; // DataGridView 上の削除すべき行番号 private void dgvkishi_cellcontextmenustripneeded(object sender, DataGridViewCellContextMenuStripNeededEventArgs e) if (e.columnindex >= 0 && e.rowindex >= 0) // ヘッダ以外なら if (dgvkishi.rows[0].cells["id"].value!= null) // データが 1 件でもあるなら TargetRowN = e.rowindex; e.contextmenustrip = contextmenustrip1; contextmenustrip1.items.clear(); contextmenustrip1.items.add(" このデータを 1 件削除 "); contextmenustrip1.items[0].click += このデータを 1 件削除 ToolStripMenuItem_Click; private void このデータを 1 件削除 ToolStripMenuItem_Click(object sender, EventArgs e) dtbl.select("id = '" + dgvkishi.rows[targetrown].cells["id"].value.tostring() + "'")[0].Delete(); // 保存終了処理 private void btnsave_buttonclick(object sender, EventArgs e).validate(); // 編集を確定する var ocombuild = new OleDbCommandBuilder(oAdp); // DataTable の内容変更をもとの Database に伝えるための CommandBuilder 作成 oadp.update(dtbl); // DataTable の内容で Database を Update する Application.Exit(); // アプリケーションを閉じる // 保存せずに終了処理 private void btnnosave_buttonclick(object sender, EventArgs e)

...Visual Studio 2015\Projects\MyHomePage 用サンプル \Database(Access2)\Database(Access2)\MainForm.cs 5 if (!Saved) if (MessageBox.Show(" データに変更がありましたが 本当に保存せずに終了してよろしいですか?", " 確認 ", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) Application.Exit(); else Application.Exit(); // データベースを最初の状態に戻す private void btninitialize_buttonclick(object sender, EventArgs e) var ocmd = new OleDbCommand("DELETE FROM TestTable", ocon); ocon.open(); ocmd.commandtext = "INSERT INTO TestTable ( 現役, 氏名, 段位 ) VALUES (TRUE, ' 羽生善治 ', 9)"; ocmd.commandtext = "INSERT INTO TestTable ( 現役, 氏名, 段位 ) VALUES (TRUE, ' 渡辺明 ', 9)"; ocmd.commandtext = "INSERT INTO TestTable ( 現役, 氏名, 段位 ) VALUES (TRUE, ' 郷田正隆 ', 9)"; ocmd.commandtext = "INSERT INTO TestTable ( 現役, 氏名, 段位 ) VALUES (TRUE, ' 糸谷哲郎 ', 8)"; ocmd.commandtext = "INSERT INTO TestTable ( 現役, 氏名, 段位 ) VALUES (TRUE, ' 谷川浩司 ', 9)"; ocmd.commandtext = "INSERT INTO TestTable ( 現役, 氏名, 段位 ) VALUES (TRUE, ' 豊島将之 ', 7)"; ocmd.commandtext = "INSERT INTO TestTable ( 現役, 氏名, 段位 ) VALUES (TRUE, ' 菅井竜也 ', 6)"; ocmd.commandtext = "INSERT INTO TestTable ( 現役, 氏名, 段位 ) VALUES (FALSE, ' 大山康晴 ', 9)"; ocmd.commandtext = "INSERT INTO TestTable ( 現役, 氏名, 段位 ) VALUES (FALSE, ' 内藤國雄 ', 9)"; ocmd.commandtext = "INSERT INTO TestTable ( 現役, 氏名, 段位 ) VALUES (TRUE, ' 加藤一二三 ', 9)"; ocmd.commandtext = "INSERT INTO TestTable ( 現役, 氏名, 段位 ) VALUES (FALSE, ' 大内延介 ', 9)"; ocon.close(); dtbl.clear();

...Visual Studio 2015\Projects\MyHomePage 用サンプル \Database(Access2)\Database(Access2)\MainForm.cs 6 oadp.fill(dtbl);