会社行きたくなかったんです。

自由になりたくて会社辞めました

プログラミング

Xamarin Visual StudioでSQL serverに接続してみました。

投稿日:

Xamarin Visual StudioでSQL serverに接続してみました。

できるようになるのに、3日くらいかかりました。

スポンサーリンク

まずは、SQLServerConnectというソリューションを作成

ソリューションエクスプローラで、
「参照」を右クリック、「参照の追加」をクリックします。

System.Dataを追加しました。

ソリューションエクスプローラで、
「Properties」を右クリック、「開く」をクリックします。

Androidマニフェスト>必要なアクセス許可で、
INTERNETを許可しておきます。

Main.axmlにはSQL serverの読取り結果を表示するためにテキストビューを配置します。

Main.axmlのコードは以下です。

「SELECT * FROM 国」というSQL文で、
国テーブルを読み込んでみます。

国テーブルの中身はこんな感じになっています。

MainActivity.csのコードは以下です。

読取り成功しました。

これを実機で動かすと、以下のエラーが発生します。

「Encoding 932 data could not be found. Make sure you have correct international codeset assembly installed and enabled. 」

このエラーは、以下の処理をすれば発生しなくなります。

ソリューションエクスプローラで、
「Properties」を右クリック、「開く」をクリックします。
「Androidオプション」で「リンカー」タブを開き、「CJK」にチェックを入れます。

CJKは、China、Japan、Koreaという意味で、Encoding 932はShift-JISなので、これで追加されます。

実機でも接続成功しました。

上のテストでは、Microsoft AzureのSQL Databeseに接続しました。

Azureの場合、サーバーのURLは、
xxxxx.database.windows.net
というフォーマットになります。
ユーザーID:uuuu
パスワード:pppp
データベース名:dddd
だとすると、
接続文字列は、次のように設定します。

次に、ローカルのSQL Server Expressにも接続してみました。
SQL Server Expressは、接続ポートを12345と固定しました。

ユーザーID:sa
パスワード:pppp
データベース名:dddd
インスタンス名:SQLExpress
サーバーのIPアドレス:192.168.1.100
で、接続を試みてみました。

接続文字列は以下です。

なぜか接続できません。
エラーメッセージは、
「Server does not exist or connection refused.」

DataSourceからインスタンス名を削除してみたら接続できました。

原因は不明です。
PC同士の接続の場合は、インスタンス名は必要です。
ポートを指定してあると、Androidなどの端末から接続するときは、インスタンス名を省略する必要があるのかもしれません。

Xamarin関連書籍の検索結果はこちらです。

楽天で「Xamarin」を検索した結果

アマゾンで検索した結果

-プログラミング

Copyright© 自由になりたくて会社辞めました , 2018 AllRights Reserved Powered by AFFINGER4.