Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity 5.3.5f和SQL Server 2008 R2:&x27;远程主机';_C#_Sockets_Sql Server 2008 R2_Unity5.3 - Fatal编程技术网

C# Unity 5.3.5f和SQL Server 2008 R2:&x27;远程主机';

C# Unity 5.3.5f和SQL Server 2008 R2:&x27;远程主机';,c#,sockets,sql-server-2008-r2,unity5.3,C#,Sockets,Sql Server 2008 R2,Unity5.3,我还没有从unity answer论坛的这篇文章中收到任何反馈,所以我在这里发帖是为了扩大知名度 这个问题似乎在unity论坛中被问了好几次,但没有解决我的问题的答案。我运行的是unity 5.3.5f,SQL Server 2008 R2 Express(运行的是SQL Server 2016,但了解到mono dll仅兼容SQL Server 2008)。我的资产文件夹中有正确的mono dll,并在项目中正确引用和构建。我正在本地运行数据库。我可以使用SQL Server Manageme

我还没有从unity answer论坛的这篇文章中收到任何反馈,所以我在这里发帖是为了扩大知名度

这个问题似乎在unity论坛中被问了好几次,但没有解决我的问题的答案。我运行的是unity 5.3.5f,SQL Server 2008 R2 Express(运行的是SQL Server 2016,但了解到mono dll仅兼容SQL Server 2008)。我的资产文件夹中有正确的mono dll,并在项目中正确引用和构建。我正在本地运行数据库。我可以使用SQL Server Management Studio很好地了解它,Visual Studio 2015也可以很好地连接到它。我完全放弃了防火墙。现在我只是想让它在unity ide中工作。我还验证了SQLServerManagementStudio中是否允许传入连接,以及SQLServerConfiguration Manager中是否启用了tcp/ip

此外,在查看unity手册时,据我所知,没有数据库连接的文档

我的代码:

public string RetrieveTestData(string query) { string sqlConnectionString = "Server=zzzz\\SQLEXPRESS2008;" + "Database=mydb;" + "User ID=sa;" + "Password=mypass;";

Debug.Log(sqlConnectionString);
SqlConnection con = new SqlConnection(sqlConnectionString);

try
{
    con.Open(); // error thrown here
    SqlCommand cmd = new SqlCommand(query, con);
    var fubar = cmd.ExecuteScalar();
    con.Close();

    return fubar.ToString();
}
catch (Exception ex)
{
    Debug.Log(ex.StackTrace);
    throw;
}

public void TestQuery()
{
     Debug.Log(RetrieveTestData("select top 1 * from dbo.Weapon"));
}
我的错误:

SocketException:远程主机强制关闭了现有连接

堆栈跟踪:

在System.Net.Sockets.Socket.ReceiveFrom_nochecks_exc(System.Byte[]buf、Int32偏移量、Int32大小、SocketFlags标志、System.Net.EndPoint和remote_end、Boolean throwOnError、System.Int32和error)[0x00000 in:0 at System.Net.Sockets.Socket.ReceiveFrom_nochecks(System.Byte[]buf、Int32偏移量、Int32大小、SocketFlags标志、System.Net.EndPoint和remote_end)[0x00000]in:0在System.Net.Sockets.Socket.ReceiveFrom(System.Byte[]缓冲区、System.Net.EndPoint和remoteEP)[0x00000 in:0在System.Net.Sockets.UdpClient.Receive(System.Net.IPEndPoint和remoteEP)[0x00000]in:0 at System.Data.SqlClient.SqlConnection+SqlMonitorSocket.DiscovertCPort(Int32 timeoutSeconds)[0x00000]in:0 at System.Data.SqlClient.SqlConnection.DiscovertCPortViaSqlMonitor(System.String ServerName,System.String InstanceName)[0x00000 in:0 at System.Data.SqlClient.SqlConnection.ParseDataSource(System.String theDataSource,System.Int32&thePort,System.String&theServerName)[0x00000]in:0 at System.Data.SqlClient.SqlConnection.Open()[0x00000]in:0 at(wrapper remoting invoke with check)System.Data.SqlClient.SqlConnection:Open()at Assets.Scripts.Data.DBBase.RetrieveTestData(System.String查询)[0x00013]在C:\Development\Unity\twistedshadowsgame\TwistedShadows\Assets\Scripts\Data\DBBase.cs:23 UnityEngine.Debug:Log(Object)Assets.Scripts.Data.DBBase:RetrieveTestData(String)(位于Assets/Scripts/Data/DBBase.cs:35)Assets.Scripts.Data.DBBase:TestQuery()(位于Assets/Scripts/Data/DBBase.cs:43)Assets.Scripts.Data.DBBase:Start()(位于Assets/Scripts/Data/DBBase.cs:48)

非常感谢所有帮助,因为这是阻碍我所有进展的单一项目。如果我没有发布任何东西或我需要在其他地方发布,请让我知道。我不希望为此需要单独的rest服务。我相信unity有能力,从我所读到的信息来看,它似乎已经被许多其他人成功完成了毫无疑问

提前谢谢!ryan“比赛迟到了”在这一点上,但我在不久前找到了答案。正确的设计模式是编写一个将进行数据库调用的服务,并让unity对该服务进行调用。对于任何试图从数据库中提取数据以填充unity中某个对象的人来说,这是首选模式

谢谢:)

关于这一点,我说得“太晚了”,但我不久前找到了答案。正确的设计模式是编写一个服务来调用数据库,并让unity调用该服务。对于任何试图从数据库中提取数据以填充unity中的某个对象的人来说,这是首选模式

谢谢:)