iSAMrx72's思いつきBlog

twitterが使いこなせない管理人のメモです。思いついたとき書きます。
トップスポンサー広告スポンサーサイト

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--/--/ (--) --:--| スポンサー広告 | コメント(-) | トラックバック(-) | 編集
トッププログラミング言語C#興味の有る人居ないですよね。DataSetとDataGridを使ってみました。

C#興味の有る人居ないですよね。DataSetとDataGridを使ってみました。

ほんの少しコードを書いただけで、住所録のデータベースが完成します。驚きです。

しかも使い勝手が良い。自分で作るとその場当たりの操作性になりますが、Windows

の共通です。データを作るのは色んな方法があるし、専用ソフト向きに出来てあります。

実用にするんであれば、他のSoftとのやり取りですか?CSVファイルの読み書きは

欲しいでしょうか?

ハッキリ言えば、そんなことする必要が無い。(^0^)です。Visual Studio 2010が

只で使えますので、良いです。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;


namespace WindowsDG
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void button1_Click(object sender, EventArgs e)
        {
            dataSet1.WriteXml(@"d:\c#src\address.xml",XmlWriteMode.WriteSchema);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            if (System.IO.File.Exists(@"d:\c#src\address.xml"))
            {
                dataSet1.ReadXml(@"d:\c#src\address.xml", XmlReadMode.ReadSchema);
            }
        }
    }
}

namespace WindowsDG
{
    static class Program
    {
        /// <summary>
        /// アプリケーションのメイン エントリ ポイントです。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

//以下はフォームのデザインで自動的に書かれたコードです。



namespace WindowsDG
{
    partial class Form1
    {
        /// <summary>
        /// 必要なデザイナー変数です。
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// 使用中のリソースをすべてクリーンアップします。
        /// </summary>
        /// <param name="disposing">マネージ リソースが破棄される場合 true、破棄されない場合は false です。</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows フォーム デザイナーで生成されたコード

        /// <summary>
        /// デザイナー サポートに必要なメソッドです。このメソッドの内容を
        /// コード エディターで変更しないでください。
        /// </summary>
        private void InitializeComponent()
        {
            this.dataSet1 = new System.Data.DataSet();
            this.dataTable1 = new System.Data.DataTable();
            this.dataColumn1 = new System.Data.DataColumn();
            this.dataColumn2 = new System.Data.DataColumn();
            this.dataColumn3 = new System.Data.DataColumn();
            this.dataColumn4 = new System.Data.DataColumn();
            this.dataGridView1 = new System.Windows.Forms.DataGridView();
            this.名前読みDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.名前漢字DataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.住所DataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.電話番号DataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.button1 = new System.Windows.Forms.Button();
            ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.dataTable1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
            this.SuspendLayout();
            //
            // dataSet1
            //
            this.dataSet1.DataSetName = "NewDataSet";
            this.dataSet1.Tables.AddRange(new System.Data.DataTable[] {
            this.dataTable1});
            //
            // dataTable1
            //
            this.dataTable1.Columns.AddRange(new System.Data.DataColumn[] {
            this.dataColumn1,
            this.dataColumn2,
            this.dataColumn3,
            this.dataColumn4});
            this.dataTable1.TableName = "Table1";
            //
            // dataColumn1
            //
            this.dataColumn1.ColumnName = "名前読み";
            //
            // dataColumn2
            //
            this.dataColumn2.ColumnName = "名前漢字";
            //
            // dataColumn3
            //
            this.dataColumn3.ColumnName = "住所";
            //
            // dataColumn4
            //
            this.dataColumn4.ColumnName = "電話番号";
            //
            // dataGridView1
            //
            this.dataGridView1.AutoGenerateColumns = false;
            this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
            this.名前読みDataGridViewTextBoxColumn,
            this.名前漢字DataGridViewTextBoxColumn,
            this.住所DataGridViewTextBoxColumn,
            this.電話番号DataGridViewTextBoxColumn});
            this.dataGridView1.DataMember = "Table1";
            this.dataGridView1.DataSource = this.dataSet1;
            this.dataGridView1.Location = new System.Drawing.Point(11, 12);
            this.dataGridView1.Name = "dataGridView1";
            this.dataGridView1.RowTemplate.Height = 21;
            this.dataGridView1.Size = new System.Drawing.Size(596, 150);
            this.dataGridView1.TabIndex = 0;
            //
            // 名前読みDataGridViewTextBoxColumn
            //
            this.名前読みDataGridViewTextBoxColumn.DataPropertyName = "名前読み";
            this.名前読みDataGridViewTextBoxColumn.HeaderText = "名前読み";
            this.名前読みDataGridViewTextBoxColumn.Name = "名前読みDataGridViewTextBoxColumn";
            //
            // 名前漢字DataGridViewTextBoxColumn
            //
            this.名前漢字DataGridViewTextBoxColumn.DataPropertyName = "名前漢字";
            this.名前漢字DataGridViewTextBoxColumn.HeaderText = "名前漢字";
            this.名前漢字DataGridViewTextBoxColumn.Name = "名前漢字DataGridViewTextBoxColumn";
            //
            // 住所DataGridViewTextBoxColumn
            //
            this.住所DataGridViewTextBoxColumn.DataPropertyName = "住所";
            this.住所DataGridViewTextBoxColumn.HeaderText = "住所";
            this.住所DataGridViewTextBoxColumn.Name = "住所DataGridViewTextBoxColumn";
            //
            // 電話番号DataGridViewTextBoxColumn
            //
            this.電話番号DataGridViewTextBoxColumn.DataPropertyName = "電話番号";
            this.電話番号DataGridViewTextBoxColumn.HeaderText = "電話番号";
            this.電話番号DataGridViewTextBoxColumn.Name = "電話番号DataGridViewTextBoxColumn";
            //
            // button1
            //
            this.button1.Location = new System.Drawing.Point(526, 178);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(81, 24);
            this.button1.TabIndex = 1;
            this.button1.Text = "書き出し";
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.button1_Click);
            //
            // Form1
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(627, 259);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.dataGridView1);
            this.Name = "Form1";
            this.Text = "住 所 録";
            this.Load += new System.EventHandler(this.Form1_Load);
            ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.dataTable1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
            this.ResumeLayout(false);

        }

        #endregion

        private System.Data.DataSet dataSet1;
        private System.Data.DataTable dataTable1;
        private System.Data.DataColumn dataColumn1;
        private System.Data.DataColumn dataColumn2;
        private System.Data.DataColumn dataColumn3;
        private System.Data.DataColumn dataColumn4;
        private System.Windows.Forms.DataGridView dataGridView1;
        private System.Windows.Forms.DataGridViewTextBoxColumn 名前読みDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn 名前漢字DataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn 住所DataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn 電話番号DataGridViewTextBoxColumn;
        private System.Windows.Forms.Button button1;
    }
}

スポンサーサイト
12/06/ (木) 10:38| プログラミング言語コメント(5) | トラックバック(-) | 編集
仕事でやってます。
Oracle + vb.net + Flex(AS3)で開発してます。
東北本線で毎日通勤中!
C#は一番好きな言語ですが、今はC言語を勉強しています。業務アプリは.netで書かれて言いますが、普通のアプリはC++が多いですから。C言語と比べるとネットにサンプルが少ないのが残念なところです。サンプルっていうのは関数の使い方じゃなくて、お手頃な規模のOSSのソースがあるかないかって意味です。
過去に私も本を読んでプログラミングの勉強をしていましたが、なかなかプログラムが書けるようになりませんでした。本ばかり読んでいたのでプログラミングをやり始めたときは、newすると重くなるとか本の影響を受けたプログラミングばかりを考えていました。やっぱり、PGは書かないとダメダメです。
パーフェクトC#って本があるんで、それを読んでみるといいかもしれないですよ。過去にパーフェクトJavaを読んだことがあるのですが、めちゃくちゃわかり易かったです。
一関はパソコンの本少ないですからね....
2012/12/24(月) 10:55:46 | URL | redhaat98 #79D/WHSg[ 編集]
redhat98さん、コメント有り難うございます。
Visual Basic2005逆引きクイックレファレンス B
猫でも分かるWindowsプログラミング D
これからはじめるVisual C#.NET C
Java協奏曲                 A
一歩先行くインターネットJava入門      C
かんたんプログラミングVisual C#.NET基礎編  E
プログラミングVisualC#.NET C
ステップバイステップで学ぶ
実践講座No1基礎編             B
今時々見てる本ですが、難しくて、最後まで読んだ本がありません。AからEは自分の評価です、Aが好きな本でEは最悪です。あくまで自分の評価ですし、素人の考えです。
Aは一冊しか有りません。でもプログラミングの本質を語ろうとしてる、その辺が好きです。単なるマニュアル的な本は嫌いですね。
 学ぶときは、出来るだけ簡単に説明しておいて、具体的な場面では、付け足す。そんな感じのが好きですね。
 あとは重要な物の説明が分かることですね。ただ読んでいくと、何が重要なのか全く分からなくなります。
 その人なりに違うかもしれませんね。w
2012/12/24(月) 17:06:49 | URL | isamrx72 #79D/WHSg[ 編集]
一関にパソコンが好きな人がいるってのはいいですね。
いつもイオンとかに行くとパソコンの本が少なくて、コンピュータ好きな人なんているの?と思っています。
プログラミングの本質を語る本は面白いですよね。
百科事典的な本はあまりおもしろくないですし。
最近は本よりもOSSで出ているソースを読みたいなと思う事の方が多いです。
デザインパターンの本を読んでも、正直どう使えばいいのかよくわからないです
仕事ではプログラミングしてますが、実は家でプログラミングしてないです。
コンピュータが好きでこの仕事をしてますが、会社でずーっとプログラミングをしているのでさすがに家に帰ってきてまでは...
なので、ちゃんとアプリを作れるようになりたいと思うのですが、ヤル気がでない日々を送っています。
いつも会社で作っているのは、OracleConnection/OracleCommand/DataTableだけ構成されているので、
業務アプリが作れるからと言って普通のアプリを作れるわけではないんです。
>Accessで出来る事なのでやる必要も無いような物ですが、試しにやって見ました。
ブログにこんな事書いていますが、SQL ServerとかMySQLを使っているんですか?
Oraccleと比べるとSQL Serverは簡単でいいですよー。最近はoracleメインですが
PS.田舎なんで家でパソコンずっとやってますが、女の人いないかなって思う今日この頃
一応に若者ですから.....
2012/12/24(月) 18:29:39 | URL | redhat98 #79D/WHSg[ 編集]
redhat98さん、コメント有り難うございます。
 自分はC#にもデータベースにもそれ程詳しいわけではないのです。ただAccessだけは少しだけかじってますので、多少分かる程度です。
 C#のデータグリッドでおやテーブルから子テーブル参照のようなことですね。例えば請求書で、鏡と明細が欲しいですよね。
 そのようなことはAccessの機能で出来るんですよ。C#でもそれに近いことは出来るのですが、明細のテーブルが別のテーブルを参照してると、例えば品名コードから品名を参照してると、C#だとどうしたら良いか分かりませんでした。
 結論はC#ではやはり手におえない。幾らツールが発達していても、少しはずれると手が出なくなります。
 C#の場合でも、SQLコンパクトとかAccessとか選ぶだけで、接続のことは考えなくて良いようです。
 これ以上は分かりません。VBで今Sortの所を読んでます。C#と同じだと思います。同じキーがあった場合、データが入れ替わるソートと元のままのソートがあります。たぶんVBの場合は、家変わると重いながら読んでるところです。
2012/12/24(月) 21:17:58 | URL | isamrx72 #79D/WHSg[ 編集]
こんばんは
趣味でやっていると、データベースが非常に難しく感じるかもしれませんね。
邪魔かもしれませんが、参考程度にデータベースについて書き込んでおきますね。
>明細のテーブルが別のテーブルを参照してると、例えば品名コードから品名を参照してると
こういう処理は普通、SQL(DB)を使って行います。
何故SQLを使うのかというと1からデータを管理しようとすると、C#だけじゃものすごくプログラムが難しくなってしまうからです。
DBを使うためには新たにSQLという言語を覚えるのは難しく思います。でも、基本的に業務アプリで使われるSQLはSELECT、DELETE、UPDATEの3つ構文だけで構成されています。
基本的にSQLではこれ以外の構文を使うことはあまりありあません。
なので、この3つだけ覚えちゃうとSQLは結構いけちゃいます。
DBにはテーブル/ビューってのがあるんですが、それらはSQL Server Manegement Studioを使ってGUIで使います(本職でプログラム組んでても、テーブル作るSQL文は覚えてないんです)。
それじゃ、このSQLを勉強するにはどのようにしたらいいのか?
SQL Serverを例にすると
1. SQL Server(データベース本体)をインストールします。
2. SQL Server Manegement Studioというデータベースに入っているデータや設定を見るためのツールをインストールします。
3. SQL Server Manegement StudioでSQLを打ち込みます。
基本的にはこれをやってSQLを覚えるのが手っ取り早いです。
ちなみに、請求書のSQLはこんな感じになると思います。
大人気なくてすいません...
SELECT
*
FROM
T_請求ヘッダ AS A
INNER JOIN T_請求明細 AS B
ON A.請求番号 = B.請求番号
LEFT JOIN M_商品マスタ AS C
B.商品コード = C.商品コード
プログラミングのポイントなのですが、いろいろな言語を勉強するのはやめた方がいいです。何故ならば、知識がいろいろな言語に分散してしますからです。
ORACLE + AS3は使い始めて1年になりますが、1年使ってようやく使えるようになったなと感じ始めました。
2012/12/24(月) 23:54:48 | URL | redhat98 #79D/WHSg[ 編集]
URL
コメント
パスワード
秘密
管理者にだけ表示を許可する
 
プロフィール

isamrx73

Author:isamrx73
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック

月別アーカイブ
カテゴリ
検索フォーム

RSSリンクの表示
リンク
ブロとも申請フォーム
QRコード

QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。