「共通関数の定義ファイルを追加(C#)」の編集履歴(バックアップ)一覧に戻る

共通関数の定義ファイルを追加(C#) - (2008/03/28 (金) 19:44:55) のソース

// 現在のページ名
*&this_page() 

**概要
共通関数を定義したクラスファイルを追加する。
クラスファイルには、データベースへの接続等、比較的どのシステムでも共通するであろう処理を記述してある。

**前提条件
-[[新しいプロジェクトの作成]]
-[[BASP21のインストール]]
-[[.NET から COM(例:BASP21) を使う]]

**手順
[ソリューションエクスプローラ] -> 「新しい項目」

&img(500.jpg)

「クラス」を選択 -> 「追加」

&img(501.jpg)

class1.cs を以下のように変更。

#highlight(csharp){{
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Odbc;
using System.Text;
using System.Windows.Forms;

public class class_common : Form 
{
    // ****************************************************** 
    // DB接続 
    // ****************************************************** 
    public bool DBConnect(
        string DBType
        , ref OdbcConnection Cn
        , string strTarget
        , string strDB
        , string strUser
        , string strPass
        )
    {
        string ConnectionString = "";

        if ((Cn == null))
        {
            Cn = new OdbcConnection();
        }

        switch (DBType)
        {
            case "SQLServer":
                ConnectionString = "Driver={SQL Server};" 
                    + "SERVER=" + strTarget + ";" 
                    + "DATABASE=" + strDB + ";" 
                    + "UID=" + strUser + ";" 
                    + "PWD=" + strPass + ";";
                break;
            case ".NET開発サーバ":
                ConnectionString = "Driver={SQL Server};" 
                    + "SERVER=" + strTarget + ";" 
                    + "DATABASE=" + strDB + ";" 
                    + "Integrated Security=SSPI;";
                break;
        }

        try
        {
            Cn.ConnectionString = ConnectionString;
            Cn.Open();

            return true;
        }
        catch
        {
            return false;
        }

    }

    // ******************************************************
    // DB終了処理(接続を閉じる)
    // ******************************************************
    public bool DBClose( ref OdbcConnection Cn )
    {
        try
        {
            if ((int)Cn.State != 1)
            {
                Cn.Close();
            }
            return true;
        }
        catch
        {
            return false;
        }
    }

    // ****************************************************** 
    // DB読込み 
    // 
    // 引数1: DBへの接続 
    // 引数2: テーブルリーダー(更新クエリ発行時は使用しませんが、ダミーで渡してください。) 
    // 引数3: SQL 
    // 引数4: 更新フラグ。 
    //           True: SQL発行のみ行います。 
    //           False: SQL発行後、テーブルリーダーを作成します。 
    // 戻り値: True(成功) , False(エラー発生) 
    // ****************************************************** 
    public bool DBGet(
        ref OdbcConnection Cn
        , ref DataTableReader Dtr
        , string SqlQuery
        , bool bUpadateFlg)
    {

        // コマンド作成 
        OdbcCommand command = new OdbcCommand();
        command.CommandText = SqlQuery;
        command.Connection = Cn;

        // テーブルアダプタ+データセット作成 
        OdbcDataAdapter DataAdapter;
        DataSet DataSet = new DataSet();

        // テーブルリーダ初期化 
        Dtr = null;

        try
        {
            // 更新フラグによって処理分岐 
            if (bUpadateFlg)
            {
                command.ExecuteNonQuery();
            }
            else
            {
                DataAdapter = new OdbcDataAdapter(command);
                DataAdapter.Fill(DataSet);
                Dtr = DataSet.CreateDataReader();
            }
            return true;
        }
        catch
        {
            return false;
        }
    } 
}
}}

Form1.cs を以下のように変更する。
「namespace」は適宜変更のこと。

#highlight(csharp){{
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Odbc;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication5
{
    public partial class Form1 : class_common
    {
        public Form1()
        {
            InitializeComponent();

            string DBType = ".NET開発サーバ";
            string strTarget = "YOKOSAN\\SQLEXPRESS";
            string strDB = "master";
            string strUser = "";
            string strPass = "";

            // コネクション作成 
            OdbcConnection Cn = new OdbcConnection();
            if ( !DBConnect(DBType, ref Cn, strTarget, strDB, strUser, strPass))
            {
                MessageBox.Show("接続失敗");
            }

            // クエリ作成 
            string selectQuery = "select * from hoge ";

            // データ取得 
            DataTableReader Dtr = null;
            if (!DBGet(ref Cn, ref Dtr, selectQuery, false))
            {
                MessageBox.Show("データ取得失敗");
            }

            DataTable DT = new DataTable();
            DT.Load(Dtr);

            dataGridView1.DataSource = DT;
        }
    }
}
}}
記事メニュー
ウィキ募集バナー