iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 19
0
Data Technology

Microsoft R Solution系列 第 19

Day19 - MSSQL R Service Part7 與Windows Form互動

  • 分享至 

  • xImage
  •  

先來看這一篇主要實作的結果
https://ithelp.ithome.com.tw/upload/images/20180106/201033337iLdu8fVBL.png

這支Windows Form主要提供兩個功能, 一個功能是讓使用者輸入Level, 然後呼叫上一篇建好的spPosition_Salaries_Predict來預測薪資, 另外一個是Windows Form載入的時候, 自動呼叫spPosition_Salaries_Plot回傳在R Service繪製好的圖形, 放在PictureBox裡, 接下來動手寫程式吧

我們在原本的R Solution下, 新增一個專案如下
https://ithelp.ithome.com.tw/upload/images/20180106/20103333R8XGvSZrtO.png

選擇Windows Form專案類型如下
https://ithelp.ithome.com.tw/upload/images/20180106/20103333lcvLHsdVch.png

一開始我們先拉出五個控制項, 兩個Label, 一個TextBox, 一個Button與一個PictureBox, 並佈局如下, PictureBox的大小設為800x600
https://ithelp.ithome.com.tw/upload/images/20180106/2010333347nDzbW30P.png

先將資料庫連線字串宣告成常數, 並引用System.IO與System.Data.SqlClient如下
https://ithelp.ithome.com.tw/upload/images/20180106/20103333RZIbsAR3gu.png

接下來在表單的Properties找到事件的頁籤, 點擊Load兩下, 來建立Form1_Load的事件
https://ithelp.ithome.com.tw/upload/images/20180106/20103333leA92TkUjD.png

在Form1_Load裡輸入底下程式碼
https://ithelp.ithome.com.tw/upload/images/20180106/20103333kfPM8ySsHO.png

然後建置一下專案, 並將Windows Form設為起始專案, 跑一下看看, 是否能讀取R Service裡的圖形? 成功畫面如下
https://ithelp.ithome.com.tw/upload/images/20180106/20103333QQfl7Y0v4o.png

在Form1設計模式下, 點擊Predict按鈕兩次, 建立按鈕點擊事件btnPredict_Click
https://ithelp.ithome.com.tw/upload/images/20180106/2010333343QXORsPS0.png

在btnPredict_Click裡輸入底下程式碼
https://ithelp.ithome.com.tw/upload/images/20180106/2010333388cmerxU4X.png

一樣跑起來看看, 是否能成功叫用spPosition_Salaries_Predict?, 在TextBox輸入6.5, 成功畫面如下
https://ithelp.ithome.com.tw/upload/images/20180106/20103333gD6VkZ8RtB.png

到這邊打完收工, 回應Day08所埋的梗:

“HR主管又提了個需求, 希望有個Web, 可以做為輸入介面與呈現預測結果”

其實已經完成囉! 只是有人會說””不是要做Web嗎?” 原因是整個鐵人賽的最後一個Part, 會整理筆者所知道R如何與Web互動的相關範例, 那為什麼會想做這個整理? 原因是之前參加過R的研討會, 總是有聽眾會問這個部分, 如何讓R落地? 畢竟以Python來說是可以一氣呵成與Web互動, 用筆者以前練習Flask專案為例子如下
https://ithelp.ithome.com.tw/upload/images/20180106/20103333L93UHQ0GQ3.png

Python程式碼如下
https://ithelp.ithome.com.tw/upload/images/20180106/20103333LYQt0tGfOm.png
https://ithelp.ithome.com.tw/upload/images/20180106/20103333dRiTEb70fB.png

由上述程式碼可以了解到, 可以直接在同一個py檔裡, 完成Web coding與模型叫用, 這也是為什麼這麼多人愛用Python的原因, 不過現在透過MSSQL R Service, 不管是甚麼程式語言, 只要能叫用MSSQL的Store Procedure都能跟R互動囉, 並不侷限特定語言了, 意思是與R互動, 其實就是當作API來處理了!
最後用底下這張圖來總結R Service的應用
https://ithelp.ithome.com.tw/upload/images/20180106/20103333OGR87yWGrj.png
https://docs.microsoft.com/zh-tw/sql/advanced-analytics/r/getting-started-with-sql-server-r-services

後記: 翻到自己去年練習Python的專案, 下次若有機會再參加鐵人賽, 來寫Python好啦/images/emoticon/emoticon12.gif


上一篇
Day18 - MSSQL R Service Part6 使用儲存在MSSQL Table的模型
下一篇
Day20 - Microsoft R Client與MSSQL R Service 互動 Part1
系列文
Microsoft R Solution30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言