问题前言
释放:困扰了我一天的问题终于解决了。。。。。
问题:用unity3d 2020 连接SqlServer时,一直提示SocketException: 由于目标计算机积极拒绝,无法连接,根据网上所述的解决方法(链接地址:https://blog.csdn.net/dingjia7050/article/details/102262690),修改了以后,任然不能成功的链接我的数据库。经过百般折磨,终于成功了,由于对着之间的原理不懂,只是记录一下我是做了哪些工作才使我的链接成功。下面见分晓…
一、首先看IP地址和端口
unity3d连接sqlserver,网上很多代码啊所用的IP都是127.0.0.1,我尝试了这个,连接脚本为:
string connectionString = "Data Source=127.0.0.1;DataBase=QuarryED_DB;uid=sa;pwd=sa123456;";
SqlConnection con = new SqlConnection();
con.ConnectionString = connectionString;
try
{
con.Open();
print("连接成功!");
con.Close();
}
catch
{
print("连接失败!");
throw;
}
但是不成功,报错如下
由此,只是用IP地址不可,还要端口。摸索了好久没找到端口,但是在偶尔的情况下,找到一个端口,就是 通过 开始—Microsoft SQL Server 2014—SQL Server 2014配置管理器—MR2014的协议(安装sql时没设置的话应该是MSSQLSERVER),,然后右边窗口有个TCP/IP协议,右键点击,打开属性-IP地址,将所有的IP都设置为启用外,记录下最后那个动态端口,我的是61306。
至此,IP地址和端口都知道了,能不能成功,试试就知道了,…
我以为不会成功,但是居然成功了,哭了,因为除了上述步骤,我还做了另外一个工作…,见下。。
Tips:如果 server=localhost ,连接不成功的话,尽量往 IP地址+端口 上面靠,如我总结里面的脚本一样。
二、另外一个工作(可能有用)
就是打开 服务.exe 里面的 SQL server 代理(MR2014),将类型调为自动,然后点击启动,然后确定。O了。但是后面我返回去将这个调为手动,也是没问题的,所以这个当白做了,先做个记录吧,万一哪天不行了呢,又来调整了试试。
总结
最终算是连接成功了,也能获取到我数据库的数据,目前看来,最大的原因就是Data Source或者server的值没有设置清楚。经过一天的琢磨加到处尝试摸索,后面就不说了,看我最终的代码。。。using UnityEngine;
using System.Data.SqlClient;
public class SQLConnectTest : MonoBehaviour
{
void Start()
{
string connectionString = "Data Source=127.0.0.1,61306;DataBase=QuarryED_DB;uid=sa;pwd=sa123456;";
SqlConnection con = new SqlConnection();
con.ConnectionString = connectionString;
try
{
con.Open();
print("连接成功!");
con.Close();
}
catch
{
print("连接失败!");
throw;
}
}
}