Как подключить базу данных SQL Server к Unity3D?

#c# #sql-server #unity3d

#c# #sql-server #unity-игровой движок

Вопрос:

Мой английский не очень хорош, но я изо всех сил стараюсь описать свои проблемы. Я скопировал I18N.dll , I18N.CJK.dll , I18N.West.dll и System.Data.dll из

D:Program FilesUnityEditorDataMonolibmono2.0 ,

но вскоре произошла ошибка следующего вида:

ошибка CS1703: было импортировано несколько сборок с эквивалентным идентификатором: ‘D:GSS ProjectAssetsPluginsSystem.Data.dll ‘ и ‘D:Program FilesUnityEditorDataMonoBleedingEdgelibmono4.7.1-apiSystem.Data.dll ‘. Удалите одну из дублирующихся ссылок.

А также, такое же исключение произошло в другом каталоге:

D:Program FilesUnityEditorDataNetStandardcompat2.0.0shimsnetfx

В то время, чтобы решить проблему, я удалил System.Data.dll в обоих двух каталогах, а затем я могу использовать систему пространств имен.Данные в Visual Studio 2017. Но когда я использую System.Data.ConnectionState , возникает другая ошибка:

Ресурсы СкриптыDbConnection.cs(39,35): ошибка CS0433: тип ‘ConnectionState’ существует как в ‘System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089’, так и в ‘netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51’

После того, как было испробовано множество методов, я обнаружил, что если я ввел

Edit --> Project Settings --> Player --> Other Settings --> Configuration --> Api Compatibility Level

и изменив .Net Standard 2.0 на .Net 4.x, ошибки можно было избежать. Но правильный ли этот метод? После выполнения этого я все еще не могу получить доступ к базе данных, потому что возникло много исключений (большинство из них около SqlConnection ).

В моем методе может быть много проблем, но кто-нибудь, пожалуйста, может сказать мне, какой метод правильный?

Большое спасибо.

Комментарии:

1. Прежде всего, это безумно опасно, вы предоставляете ненадежному приложению полный доступ к вашей базе данных. Обычно вы создаете API и подключаете его к базе данных вместо приложения Unity. Во-вторых, Mono не поддерживает SQL Server

Ответ №1:

Как заявил пользователь в комментариях, прямое подключение с использованием dll не является более безопасным, и безопаснее и лучше использовать php interconnection.

(Особенно если вы планируете публиковать на платформе WEBGL, у вас будут трудности с подключением sql после сборки игры, вот где я застрял на данный момент)

С учетом сказанного ,

Вы получаете это исключение из-за

«система… «

которая существует дважды, вам не нужен system.Data.dll в ваших ресурсах.

Стереть System.Data.dll Вам нужны только файлы I18N, которые у вас уже есть, и

MYSQL.data.dll , GoogleProtofub и bouncyCasteCrypto.

Также измените сетевую версию обратно на 4X.V2.

Наконец, вы можете найти файлы mysql connector / NET на официальном сайте MYSQL.

Надеюсь, это поможет. Дайте мне знать о любой другой ошибке.