血圧アプリ

Excelに手入力するの面倒なので、データ取得のプラグインを作ろう。

ちょうど仕事でVSTOやってるので、リボンにしてC#でMySQLからデータ取得して・・・みたいな。

MySQLの.NET用コネクタをインストール。

mysql001mysql002

データソース追加して、DataSetで使おうと思ったが、いまいち解らん。

追加ウィザードでDBにアクセスできて、検索は簡単にできたんだが。。

mysql003

結局、手で接続した。

[csharp]
List<BloodDataOutModel> dateList = new List<BloodDataOutModel>();
try
{
MySqlConnection cn = new MySqlConnection("Data Source=’192.168.0.1′;Database=xxxxx;User ID=xxxxx;password=xxxxx");
MySqlDataAdapter da = new MySqlDataAdapter();
MySqlCommand command = new MySqlCommand("select * from pressure where date >= ?FROMDATE and date <= ?TODATE order by date, time", cn);

command.Parameters.AddWithValue("FROMDATE", fromDate);
command.Parameters.AddWithValue("TODATE", toDate);

da.SelectCommand = command;

DataTable dt = new DataTable();
da.Fill(dt);

var data = from s in dt.AsEnumerable()
select new BloodDataOutModel()
{
Date = Convert.IsDBNull(s["date"]) ? string.Empty : Convert.ToDateTime(s["date"]).ToString("yyyy-MM-dd"),
Wakeup = Convert.IsDBNull(s["wakeup"]) ? false : Convert.ToBoolean(s["wakeup"]),
Time = Convert.IsDBNull(s["time"]) ? string.Empty : Convert.ToDateTime(s["time"].ToString()).ToString("HH:mm"),
Max = Convert.IsDBNull(s["max"]) ? 0 : Convert.ToInt32(s["max"]),
Min = Convert.IsDBNull(s["min"]) ? 0 : Convert.ToInt32(s["min"]),
Pulse = Convert.IsDBNull(s["pulse"]) ? 0 : Convert.ToInt32(s["pulse"]),
Check = Convert.IsDBNull(s["ck"]) ? false : Convert.ToBoolean(s["ck"]),
Memo = Convert.IsDBNull(s["memo"]) ? string.Empty : Convert.ToString(s["memo"])
};

dateList =  data.ToList<BloodDataOutModel>();
[/csharp]

DBはファイルサーバー(CentOS)のMySQLにあるので、別マシンのWindowsでWCFサービス起動してそこ経由することにしよう。

いちおうWCFでデータコントラクト渡せてる。( ゜ー゜)( 。_。)ウン
mysql004

あとは、プラグインとかテンプレートとかどこからか取得するようにしたりにすればいいんだけど。。

先にリボン作る・・( ´_ゝ`)
mysql005

コメントを残す

%d人のブロガーが「いいね」をつけました。