DB Serializer

古い記事
この記事は公開から1年以上経っており,情報が古い可能性があります.

Deprecated: the_author_ID の使用はバージョン 2.8.0 から非推奨になっています ! 代わりに the_author_meta('ID') を使ってください。 in /var/www/html/blog/wp-includes/functions.php on line 4779
2

.NET環境(VB.NET/C#)でデータベースのテーブルへデータを追加・呼出が手軽に行えるようにしたライブラリです。

サンプルソース

シリアライズ

[Serializable, DataContract, DBSerializable("datas")]
public class DateData : DBSerialize.DBSerialize<DateData>
{
    [DataMember, PrimaryKey, Autoincrement]
    public int ID { get; set; }
    [DataMember]
    public int Code { get; set; }
    [DataMember]
    public int Date { get; set; }
    [DataMember]
    public float End { get; set; }
    [DataMember]
    public float Start { get; set; }
}
DateData dd = new DateData()
{
     Code = 1000,
     Date = 20141225,
     End = 100,
     Start = 100
 };
 dd.Add(db_connection);

新しく行を追加したい場合はAddメソッド、PrimaryKeyに指定したプロパティへ上書き保存する場合はSaveメソッドを使用します。
シリアライズするクラスには必ずSerializable属性を、対応するデータベースのテーブル名の指定はDBSerializableで行います。
シリアライズするメンバーにはDataMember属性をつけてください。また、DataMemberで指定したNameプロパティは無視されます。

デシリアライズ

DateData.Load(db_connection);

この一行で行えます。
LoadWhereメソッドを使用すれば条件付きでデータを列挙できます。
その際に指定する条件の文はSQL文のWHEREに指定する文字をそのまま指定してください。
例:id=10 や id > 10 and text like “%aa%” など
また、string.Formatメソッドのように大カッコを使用した条件式も使用できます。

DateData.LoadWhere(db_connection, "ID={0}", 10);

 データベースの種類(Ver 1.1 <)

このシリアライザーはSQLiteやMySQLの両方は少なくとも動作するように作られています。
この2つ、内部で呼び出す関数が異なるもあるため、はっきりと使用するデータベースの種類を教えて上げる必要があります。

DateData dd = new DateData();
// ...
dd.Setting = DBSerialize.DBSerializeSettings.MySQL;
dd.Add(connection);

SQLiteとMySQLについては予め定義してある設定を呼び出すだけで大丈夫です。
その他についてもDBSerializeSettingクラスで対応できれば使用できます。

ダウンロード

最新

[wpdm_file id=23]

リリースノート

詳しい内容についてはタグ”DB Serializer“にて公開しています。

Ver 1.1
[wpdm_file id=23] SQL文を組み立てる場合にパラメータを使用しないオプションを追加(Addメソッドの第2引数)
MySQLに対応

V1.0
[wpdm_file id=2] 初公開