Unity3d连接SQL Server数据库出现SocketException: 使用了与请求的协议不兼容的地址错误

  这两天,同学问我Unity3d连接SQL Server的问题,当时我只是简单的说:“应该一样吧,就是那简单的几句啊”。之后他让我试了下,我才发现有问题了。故此写下一篇博客,要牢记这件事的教训,操作数据库,我们人人都会,然而,我们要知道:有些事,并不是我们会啦,就有能力去完成的,我们必须要注重各种细节,才能胜任我们作为程序员的工作(虽然我还是个学生)。

  下面进入主题吧,我们先看看连接数据库:

    1、引入程序集System.Data.dll,位置在C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity(默认位置),把System.Data.dll文件复制到当前Unity项目文件下,即Assets文件夹下就可以了。

    2、将程序集Sysem.Data.dll用VS2015手动引入即可。

using UnityEngine;
using System.Collections;
using System.Data.SqlClient;
using System;

public class Testaa : MonoBehaviour
{

    // Use this for initialization
    SqlConnection con = new SqlConnection("Data Source=主机名;Initial Catalog=db_CSharp;Persist Security Info=True;User ID=sa;Password=密码");

    void Start()
    {
        Do();
    }
    void Do()
    {
        con.Open();
        SqlCommand com = new SqlCommand("select * from tb_PDic", con);
        SqlDataReader sdr = null;
        try
        {
            sdr = com.ExecuteReader();
            print("名称\t\t\t\t价格\n");
            while (sdr.Read())
            {
                print(sdr["Name"] + "\t\t\t\t" + sdr["Money"] + "\n");
            }
            con.Close();
        }
        catch (Exception ex)
        {
            print(ex.Message);
        }
    }
    // Update is called once per frame
    void Update()
    {
    }
}

保存后运行。出现如下错误:

SocketException: 使用了与请求的协议不兼容的地址。

System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP, Boolean requireSocketPolicy)
System.Net.Sockets.Socket+Worker.Connect ()
Rethrow as TdsInternalException: Server does not exist or connection refused.
Mono.Data.Tds.Protocol.TdsComm..ctor (System.String dataSource, Int32 port, Int32 packetSize, Int32 timeout, TdsVersion tdsVersion)
Mono.Data.Tds.Protocol.Tds..ctor (System.String dataSource, Int32 port, Int32 packetSize, Int32 timeout, TdsVersion tdsVersion)
Mono.Data.Tds.Protocol.Tds70..ctor (System.String server, Int32 port, Int32 packetSize, Int32 timeout, TdsVersion version)
Mono.Data.Tds.Protocol.Tds80..ctor (System.String server, Int32 port, Int32 packetSize, Int32 timeout)
Mono.Data.Tds.Protocol.TdsConnectionPoolManager.CreateConnection (Mono.Data.Tds.Protocol.TdsConnectionInfo info)
Mono.Data.Tds.Protocol.TdsConnectionPool.GetConnection ()
System.Data.SqlClient.SqlConnection.Open ()
Rethrow as SqlException: Server does not exist or connection refused.
System.Data.SqlClient.SqlConnection.Open ()
(wrapper remoting-invoke-with-check) System.Data.SqlClient.SqlConnection:Open ()
Testaa.Do () (at Assets/Testaa.cs:17)
Testaa.Start () (at Assets/Testaa.cs:13)

解决方法:将主机名改为主机的IP地址即可。

时间: 2025-01-05 20:22:09

Unity3d连接SQL Server数据库出现SocketException: 使用了与请求的协议不兼容的地址错误的相关文章

Unity3D连接Sql Server数据库详解

转自:http://unity.jb51.net/chengxukaifa/shujukubiancheng/1078.html 最近一些朋友问我u3d PC端 连接数据库的问题.现在抽出一点时间,为大家写一个连接数据库以及打印出数据表中的数据案例   首先,我们需要添加一个外部引用        然后在VS 中添加引用   数据库Test的表以及数据表中的数据为大家贴上图: 好了!准备工作我们已经做好啦~~   (最后我们会提供源码文件下载地址)   接下来我们来试着连接数据库.   我就直接

unity3d怎么连接sql server数据库?

1.找到System.Data.dll文件,默认的地址是在C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity,这个根据你所安装的路径有关. 2.将该文件复制到你的工作空间下的Asset文件夹内 3.在你的编辑器中添加引用,我用的是VS 4.在命名空间内增加程序集 using System; using System.Data; using System.Data.SqlClient; 5.编写连接数据库代码 SqlConnection c

详解连接SQL Server数据库的方法,并使用Statement接口实现对数据库的增删改操作

总结一下,连接SQL Server数据库需要以下几个步骤: 1. 导入驱动Jar包:sqljdbc.jar 2. 加载并注册驱动程序 3. 设置连接路径 4. 加载并注册驱动 5. 连接数据库 6. 操作数据库 7. 关闭连接 代码如下: ******************连接数据库******************* 1 package zj6_Test; 2 import java.sql.*; 3 public class Zj6_3 { 4 /** 5 * 使用Statement接口

ThinkPHP连接sql server数据库

原文:ThinkPHP连接sql server数据库 亲身经历,在网上找连接sql server数据库的方法,还是不好找的,大多数都是照抄一个人的,而这个人的又写的不全,呵呵,先介绍一下我连接的方法吧.如果你是用THINKPHP连接,那么最重要的就是配置问题. 我的PHP版本是5.3,就说5.3的方法吧 1.首先要下载 php_pdo_sqlsrv_53_ts_vc9.dll php_sqlsrv_53_ts_vc9.dll 下载地址:http://share.weiyun.com/dc589f

VS2013 MFC ODBC连接SQL SERVER数据库编程(三)

VS2013 MFC ODBC连接SQL SERVER数据库编程(三) 转载请注明:http://blog.csdn.net/my_acm/article/category/2616577 继上一篇讲完对数据库的链接以及一些说明之后,本文将实现对数据库的增删查改等操作. 如上图所示就是最终完成的一个简单的小程序. 首先添加列表框的NM_CLICK响应程序.鼠标放在列表框上,右键->添加事件处理程序,找到MN_CLICK消息,添加并编辑,如下图所示. 在响应函数里面添加如下代码: 这样就实现了,点

JDBC连接sql server数据库的详细步骤和代码

JDBC连接sql server数据库的详细步骤和代码 JDBC连接sql server数据库的步骤如下: [java] view plaincopyprint? 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String  className)实现. 成功加载后,会将Driver类的实例注册到DriverManager类中. 2.提供JDBC连接的URL •连接URL定

从SSMS中复制代码到Word中数字消失--没解决&&Excel连接SQL Server数据库

1.因工作需要需把SSMS中的代码复制到word中,可发现一个问题: 从SQL Server2008的SSMS中复制代码到Word 2013中,如果是中文汉字+阿拉伯数字,阿拉伯数字会消失.如果是英文+阿拉伯数字就没有问题.在网上也没找到方法,问一哥们,他说我们都是英文,没遇到过.记录下来吧 2.每次发的数据都在数据库中,之前都是select * from TableName,然后"连同标题一起复制",然后再粘贴到Excel中.但其实excel可以连接SQL Server的,其实操作很

C# 连接SQL Server数据库的连接字符串<转>

C#连接SQL Server数据库的连接字符串,我们一个一个参数来介绍(注意:参数间用分号分隔): “user id=sa”:连接数据库的验证用户名为sa.他还有一个别名“uid”,所以这句我们还可以写成“uid=sa”. “password=”:连接数据库的验证密码为空.他的别名为“pwd”,所以我们可以写为“pwd=”. 这里注意,你的SQL Server必须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录.如果你的SQL Server设置为Windows登录,那么在这里就不需要

Windows 2008服务器环境PHP连接SQL Server数据库的配置及连接方法

背景: PHP程序常用的数据库是Mysql数据库,但是由于实际项目需要,要求PHP网站连接SQL Server数据库查询一些必要信息.因此,本文就来给大家介绍一下如何安装及配置PHP扩展,可以实现PHP利用PDO函数连接SQL Server数据库. 正文: 要让PHP配置支持sql server,需要安装一些必要软件及扩展,步骤如下: 1.在微软官方页面https://www.microsoft.com/en-us/download/details.aspx?id=20098下载PHP扩展压缩包