前提・実現したいこと
UnityからMicrosoft SQL Serverを使用したいと考えています。
Visual Studio上でメニューバーの「ツール」→「Nugetパッケージマネージャー」→「NuGetパッケージの管理」から「Microsoft.Data.SqlClient」をインストールしました。
この時点ではVisual Studioで「MicrosoftにDataなんてない」とエラーが出ていたため、メニューバーの「プロジェクト」→「参照の追加」からUnityのプロジェクトファイル直下の「Packages\Microsoft.Data.SqlClient.3.0.0\lib\net461\Microsoft.Data.SqlClient.dll」を追加しました。
これでVisual Studio上でのエラーは出なくなりましたが、Unity上でのエラーが消えず困っていました。
その際にUnityを再起動したのですが、Visual Studioの方で参照が消え、Assembly-CSharpの設定ファイルも読み込まれません。
再度設定しなおしましたが、Unityを再起動すると再び参照が消え、Unity、Visual Studio双方でエラーが出力されました。
最初の段階で参考にした記事:
C# SQLServerに接続してselectするサンプル
追伸
初質問です。何か不備があればご教示ください。
平日は学校があるのでなかなか反応できないかもしれません。
発生している問題・エラーメッセージ
Unity
1Assets\Scripts\FieldScene\StorySystem.cs(5,17): error CS0234: The type or namespace name 'Data' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)
VisualStudio
1重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 2エラー CS0234 型または名前空間の名前 'Data' が名前空間 'Microsoft' に存在しません (アセンブリ参照があることを確認してください) Assembly-CSharp C:\Users[ユーザー名]\Documents\プロジェクト\IEC-002\Assets\Scripts\FieldScene\StorySystem.cs 5 アクティブ 3
当該エラーはUnity上のみのもので、Visual Studio上では同じ内容のエラーは出ていませんでしたが、Unityを再起動した際の再読み込みでエラーが出るようになりました。
該当のソースコード
C#
1using System; 2using System.Collections; 3using System.Collections.Generic; 4using System.Data; 5using Microsoft.Data.SqlClient; // ここでエラー(参照を追加しているだけ) 6using System.IO; 7using UnityEngine; 8using UnityEngine.SceneManagement; 9using UnityEngine.Tilemaps; 10using UnityEngine.UI; 11 12public class StorySystem : MonoBehaviour 13{ 14 // 中略 15 // 以下は最初の段階で参考にした記事からのコピペです 16 public void Test() 17 { 18 string sql = "SELECT id,name,romaji FROM SYAIN"; 19 20 try 21 { 22 using (SqlConnection conn = new SqlConnection()) 23 { 24 conn.ConnectionString = 25 @"Data Source=localhost\SQLEXPRESS;" + 26 "Initial Catalog=testDB1;" + 27 "Integrated Security=SSPI;"; 28 29 conn.Open(); 30 31 using (SqlCommand cmd = new SqlCommand(sql)) 32 { 33 cmd.Connection = conn; 34 cmd.CommandType = CommandType.Text; 35 36 using (SqlDataReader reader = cmd.ExecuteReader()) 37 { 38 while (reader.Read()) 39 { 40 Console.WriteLine(reader["id"] + ":" 41 + reader["name"] + ":" 42 + reader["romaji"]); 43 } 44 } 45 } 46 } 47 } 48 catch 49 { 50 51 } 52 } 53}
試したこと
・まずインターネット上で調べましたが、同様の現象が起きているという記述が見つかりませんでした(調べ方が悪いのかもしれないです)。
・同じ「Microsoft.Data.SqlClient.3.0.0」フォルダー内にある「Microsoft.Data.SqlClient.dll」に参照を変更しましたが変化がありませんでした。
・参照を再度設定し、Unityを再起動しましたが、再び参照が消えました。
補足情報(FW/ツールのバージョンなど)
Unityのバージョン:Unity 2019.4.16f1
Microsoft Visual Studio 2019
追記 2021/06/27 10:12
Unity側からNugetを使用してインポートしてみることにしました。
また追記します。
追記 2021/06/27 13:25
「NuGetforUnity」からインストールしようと試みましたが、一部のパッケージ(後述)が何度「Install」を押しても処理は開始されず、でした。
ダウンロードさせる気がないのでしょうか。
DLできなかったパッケージ(途中で諦めたのでもっとあるかもしれません)
System.Numerics.Vectors.dll
System.Security.Principal.Windows.dll
System.Data.SqlClient.dll
SQLServerを使用するには必要な手順だと思うですが、どうにかして回避できないものでしょうかね……
あなたの回答
tips
プレビュー