Unity连接SQLServer数据库报错找不到System.Data.dll

最近要采集一些数据,原来是读取MySQL到没有什么问题,现在改成数据库是SQLServer,但是一直报找不到System.Data.dll文件的错误,在这里记录一下解决方法,供以后避坑(PS:原来一直以为是找的dll文件有问题,试了很多个版本也没用,太累了,再也不想挨个找了)

错误信息

先把我的错误信息放出来,放不放System.Data.dll都会出错(这可咋整!)
1、没放System.Data.dll到项目中vs代码报错,明显找不到类
错误信息1
2、没放System.Data.dll到项目中的unity错误信息
在这里插入图片描述

3、将System.Data.dll放到项目中的错误信息
错误信息1

Unity中错误解决方法(Unity2018以后可以使用,之前版本应该还是需要复制放到项目中)

Unity2018以前版本需要将System.Data.dll拷贝到unity项目里,Unity2018以后就不需要这部操作了,只需要在设置中将Api Compatibility Level* 设置成 .Net 4.x 就可以了(吐了,谁知道这么简单,话说网上的文章能不能与时俱进一下,翻了好多才找到一个),Unity问题解决。
unity设置

VS错误解决方法

找到 工具 -> NuGet 包管理器 -> 管理解决方案的 NuGet程序包,在弹出的窗口中搜索 sql,找到System.Data.SqlClient ,然后选择全部进行安装(我这里已经安装了所以就不能再次安装了)。
在这里插入图片描述
记得联网才能进行下载,全部安装好之后,需要重新启动 VS,就不会报错了,VS问题解决。

刚下班就开始码字,来的各位大牛,感觉有用的话点个收藏和关注呗(一年没写了,以后还是要多写多记,好了又是收获满满的一天,继续潜水,哈哈~~)

顺便附上VS详细代码供兄弟们参考

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

public class SqlServerUtils:MonoBehaviour
{
    //指定ip和数据库账号密码
    private const string ipAddress = "server=127.0.0.1;database=TestDB;uid=sa;pwd=admin123";
    //定义连接
    private SqlConnection sqlCon;
    //适配器
    SqlDataAdapter sda = null;

    void Start()
    {
        ConnectSQLServer();
    }

    public void ConnectSQLServer()
    {
        try
        {
            Debug.Log("开始连接SqlServer!");
            //创建一个数据库连接
            sqlCon = new SqlConnection(ipAddress);
            //打开连接
            sqlCon.Open();
            Debug.Log("SqlServer连接成功!");
            //数据库操作语句  
            //注意数据库名字要用中括号括起来
            string sql = "select * from [user]";
            //数据库操作
            sda = new SqlDataAdapter(sql, ipAddress);
            //结果集
            DataSet ds = new DataSet();
            //将查询的结果放入结果集
            sda.Fill(ds, "user");
            //打印结果,这种打印比较麻烦,毕竟谁也不会记住要找的数据是第几行第几列
            Debug.Log(ds.Tables[0].Rows[0][1]);

            //将得到的数据转换成 XML,使用简单,可以直接找到对应的字段名字进行获取
            XmlDocument xdoc = new XmlDocument();
            xdoc.LoadXml(ds.GetXml());
            XmlNode xmlNode = xdoc.FirstChild;
            //遍历数据库中的数据
            foreach (XmlNode item in xmlNode)
            {
                Debug.Log(item.SelectSingleNode("name").InnerText);
                Debug.Log(item.SelectSingleNode("age").InnerText);
            }

            //关闭数据库
            sqlCon.Close();

        }
        catch (Exception e)
        {
            Debug.LogError(e.StackTrace);
        }
    }
}

以下是个人参考的网站
SQLServer2016安装教程
Unity连接SQLServer并进行查询
VS找不到System.Data.SqlClient解决方法
Unity找不到System.Data.SqlClient雷区

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值