我应该保持SqlConnection打开吗?

时间:2017-12-28 20:38:28

标签: c# sql sql-server unity3d

在我的Unity3D游戏中,玩家可以通过短暂的游戏来玩自己,这在一开始大约需要4秒。目标是在每个级别获得最佳的清晰时间。我目前在本地保存这些明确的时间,但我想将它们上传到SQL Server,以便能够为每个级别创建排行榜。

由于执行SqlConnection.Open()命令大约需要1-2秒,有时也需要3秒,我想知道是否应该保持static连接始终打开,准备好执行我想要运行的任何查询

这样做有不良和危险的副作用吗?

编辑:这是我用来打开SqlConnection的代码。

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder()
{
    DataSource = dataServer,
    UserID = userId,
    Password = password
};

SqlConnection connection = new SqlConnection(builder.ToString());
connection.Open();

1 个答案:

答案 0 :(得分:1)

首先,我将回答这个问题:

  

这样做有不良和危险的副作用吗?

假设您将此代码保留在游戏(客户端)中并且SQL Server不是客户端,而是位于您所在位置的服务器中,则简单的客户端反向工程师将能够从您的连接字符串中获取凭据并使用他们获得未经授权的数据库访问权限。 (绝不信任客户)

话虽如此,我建议您使用简单的服务器端技术(php,Socket App,Java servlet等)以及客户端将信息发送到数据库的SQL。

示例:

  

1)客户 - >帖子数据 - > PHP

     

2)PHP - >连接 - > SQL数据库

     

3)PHP - >插入数据 - > SQL数据库

像这样你也可以通过询问php(或你使用的任何技术)将数据发送到客户端,从数据库中检索你的梯子的结果。

祝你取得进步,如有任何其他信息,请随时与我联系!