血圧アプリ
Excelに手入力するの面倒なので、データ取得のプラグインを作ろう。
ちょうど仕事でVSTOやってるので、リボンにしてC#でMySQLからデータ取得して・・・みたいな。
MySQLの.NET用コネクタをインストール。
データソース追加して、DataSetで使おうと思ったが、いまいち解らん。
追加ウィザードでDBにアクセスできて、検索は簡単にできたんだが。。
結局、手で接続した。
[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でデータコントラクト渡せてる。( ゜ー゜)( 。_。)ウン
あとは、プラグインとかテンプレートとかどこからか取得するようにしたりにすればいいんだけど。。