1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

UnityでSQL Serverに接続する

Posted at

UnityでSQL Serverに接続する際、躓いた点をメモします。
※.NET Frameworkを使用する方法なのでWindows環境のみでの動作となり、マルチプラットフォームを考えられている方は不向きだと思います。

ソースコード

接続に以下のような記述を用いました。
ヘッダ部分

using System.Data.SqlClient;
using System.Data;

SQL接続部分

DataTable dt = new DataTable();

try
{
    SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
    builder.DataSource = "IP";
    builder.UserID = "User";
    builder.Password = "Password";
    builder.InitialCatalog = "Table";

    using (SqlConnection connection = new SqlConnection(builder.ConnectionString))
    {
        connection.Open();

        using (var sqlCommand = connection.CreateCommand())
        {
            sqlCommand.CommandTimeout = 60000;
            
            //SQLを記述
            sqlCommand.CommandText = "";

            var adapter = new SqlDataAdapter(sqlCommand);
            adapter.Fill(dt);
        }
    }
}
catch (SqlException e)
{
    Debug.Log(e.ToString());
}

しかし、このままではエラーが出ます。どうやらSystem.DataのSqlClientが認識できていないようです。調べてみると、Unityで.NET Frameworkの機能を利用するためには特別な設定をしてやる必要があるようです。
image.png

error CS0234: The type or namespace name 'SqlClient' does not exist in the namespace 'System.Data' 

設定内容

①BuildSettingを開き、左下のPlayer Seggingsをクリックします。
buildsettings.png
②Playerの下部にあるConfigurationのApi Compatibility Levelを.NET Frameworkに変更します。(デフォルトで.NET Standard 2.1になっています。)
playersettings.png
③Unity Editorを再起動します。

これでエラーが消え、.NET Frameworkの機能を利用できるようになります。

最後に

Unityに互換性を選択できる項目があるのを初めて知りました。.NET FrameworkはWindows上のみでの動作なので、マルチプラットフォームのためにデフォルトはStandardになっているんでしょうか。このあたりの認識がかなり甘いので、どなたかツッコミいただければ嬉しいです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?