为了账号安全,请及时绑定邮箱和手机立即绑定

如何从Unity连接到数据库

如何从Unity连接到数据库

Smart猫小萌 2019-08-28 09:45:17
如何从Unity连接到数据库我试图通过Unity连接到MS SQL数据库。但是,当我尝试打开连接时,我收到IOException:连接丢失。我从Unity \ Editor \ Data \ Mono \ lib \ mono \ 2.0导入了System.Data.dll。我使用以下代码: using UnityEngine;  using System.Collections;  using System.Data.Sql;  using System.Data.SqlClient;  public class SQL_Controller : MonoBehaviour {      string conString = "Server=myaddress.com,port;" +              "Database=databasename;" +              "User ID=username;" +              "Password=password;";      public string GetStringFromSQL()      {          LoadConfig();          string result = "";          SqlConnection connection = new SqlConnection(conString);          connection.Open();          Debug.Log(connection.State);          SqlCommand Command = connection.CreateCommand();          Command.CommandText = "select * from Artykuly2";          SqlDataReader ThisReader = Command.ExecuteReader();          while (ThisReader.Read())          {              result = ThisReader.GetString(0);          }          ThisReader.Close();          connection.Close();          return result;      }  }这是我得到的错误:IOException: Connection lostMono.Data.Tds.Protocol.TdsComm.GetPhysicalPacketHeader ()Mono.Data.Tds.Protocol.TdsComm.GetPhysicalPacket ()Mono.Data.Tds.Protocol.TdsComm.GetByte ()Mono.Data.Tds.Protocol.Tds.ProcessSubPacket ()Mono.Data.Tds.Protocol.Tds.NextResult ()Mono.Data.Tds.Protocol.Tds.SkipToEnd ()Rethrow as TdsInternalException: Server closed the connection.Mono.Data.Tds.Protocol.Tds.SkipToEnd ()Mono.Data.Tds.Protocol.Tds70.Connect (Mono.Data.Tds.Protocol.TdsConnectionParameters connectionParameters)Mono.Data.Tds.Protocol.Tds80.Connect (Mono.Data.Tds.Protocol.TdsConnectionParameters connectionParameters)请用这种方法忽略任何安全风险,我需要这样做进行测试,安全性会在以后发生。感谢您的时间。
查看完整描述

3 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

另一种方法是在命令提示符下创建自己的专用服务器,以进行通信并将其连接到统一到Handel多人游戏和SQL通信。通过这种方式,您可以坚持使用一种语言创建。但是学习曲线相当陡峭。


查看完整回答
反对 回复 2019-08-28
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

Unity是游戏引擎。


所以答案是正确的。


但是,有些域需要直接连接数据库。


您不应该直接在游戏域中访问该数据库。


无论如何,问题是由非英语计算机名称引起的。


我在项目之前遇到了一些跟踪错误。


IOException: Connection lost

Mono.Data.Tds.Protocol.TdsComm.GetPhysicalPacketHeader ()

Mono.Data.Tds.Protocol.TdsComm.GetPhysicalPacket ()

Mono.Data.Tds.Protocol.TdsComm.GetByte ()

Mono.Data.Tds.Protocol.Tds.ProcessSubPacket ()

Mono.Data.Tds.Protocol.Tds.NextResult ()

Mono.Data.Tds.Protocol.Tds.SkipToEnd ()

Rethrow as TdsInternalException: Server closed the connection.

Mono.Data.Tds.Protocol.Tds.SkipToEnd ()

Mono.Data.Tds.Protocol.Tds70.Connect (Mono.Data.Tds.Protocol.TdsConnectionParameters connectionParameters)

Mono.Data.Tds.Protocol.Tds80.Connect (Mono.Data.Tds.Protocol.TdsConnectionParameters connectionParameters)

将计算机名称更改为ENGLISH后,它可以正常工作。


我不知道它会怎么样。但它的确有效。


Mono的System.Data.dll在PC上有一些问题有NON-ENGLISH计算机名。


所以,至少Unity项目。


您应该告诉您的客户不要将他们的计算机名称设置为非英语。


我不知道单声道的人是否知道这些问题。


查看完整回答
反对 回复 2019-08-28
  • 3 回答
  • 0 关注
  • 1145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信