[Xamarin Android] 連接MSSQL-使用WebService

[Xamarin Android] 連接MSSQL
Xamarin Android透過WebService連到遠端資料庫(Remote Database) -Microsoft SQL

[Xamarin Android] 連接MSSQL

WebService建置分為三步驟

Step 1. 建置WebService

先建置空網站,點選專案右鍵->加入->加入新項目->Web服務(ASMX),檔案名稱將會成為Class,如下圖所示!

Step 2. 編輯WebService內容

建置完成後,.cs檔內有預設HelloWorld方法。依照HelloWorld方法撰寫新方法,參考下面範例Code。撰寫完成後,本地執行測試或複製至Server執行測試。

[WebMethod]
    public string HelloWorld()
    {   //預設產生的方法
        return "Hello World";
    }
    [WebMethod]
    public string SNQuery(string SN)
    {
        //SQL 連接資訊,連接資訊內容依現況自行更換
        SqlConnection conn = new SqlConnection("server=伺服器IP;database=資料庫名稱;uid=資料庫帳號;pwd=資料庫密碼");
        conn.Open();
        SqlCommand str_com = new SqlCommand();
        //SQL Command
        str_com.CommandText = "SELECT M_Name,M_Jobtitle FROM Member where M_AN = '" + SN + "'";
        str_com.Connection = conn;
        //SQL Read物件
        SqlDataReader s_read = str_com.ExecuteReader();
        //判斷有無值
        bool result = s_read.HasRows;
        string job = "";
        while (s_read.Read())
        {
            job =s_read["M_Name"].ToString()+"職位是\""+ s_read["M_Jobtitle"].ToString()+"\"";
        }
        //關閉連線資源
        s_read.Close();
        conn.Close();

        if (result)
            return job;
        else
            return SN + "NOT Found";        
    }

Step 3. WebService測試頁面

WebService內有兩個方法,預設與自行撰寫的方法

點擊撰寫的方法,進入後可以測試WebService是否正常

輸入值後點選叫用,將會顯示結果


Android從此開始

Step 1.建置空專案,在Main內新增EditView、TextView和Button

Step 2.加入WebService參考

URL內貼上Service網址,點選移至目的網址,右邊框這個url中的Web服務內將會顯示網站檔案名稱,下方Web參考名稱可以重新命名(將作為類別方法名稱使用),

確認後點選加入參考

Step 3.編輯Activity

   protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            // Get our button from the layout resource,
            // and attach an event to it
            Button btn_output = FindViewById<Button>(Resource.Id.btn_output);
            TextView txtView = FindViewById<TextView>(Resource.Id.txtView);
            EditText edtxt = FindViewById<EditText>(Resource.Id.edTxt);

            btn_output.Click += (sender, e) =>
            {//呼叫WebReference內的類別SNQueryWebService的SNQuery方法
                txtView.Text = new WebReference.SNQueryWebService().SNQuery(edtxt.Text);
            };
        }

Step 4.執行Activity