最近要采集一些数据,原来是读取MySQL到没有什么问题,现在改成数据库是SQLServer,但是一直报找不到System.Data.dll文件的错误,在这里记录一下解决方法,供以后避坑(PS:原来一直以为是找的dll文件有问题,试了很多个版本也没用,太累了,再也不想挨个找了)
错误信息
先把我的错误信息放出来,放不放System.Data.dll都会出错(这可咋整!) 1、没放System.Data.dll到项目中vs代码报错,明显找不到类 2、没放System.Data.dll到项目中的unity错误信息
3、将System.Data.dll放到项目中的错误信息
Unity中错误解决方法(Unity2018以后可以使用,之前版本应该还是需要复制放到项目中)
Unity2018以前版本需要将System.Data.dll拷贝到unity项目里,Unity2018以后就不需要这部操作了,只需要在设置中将Api Compatibility Level* 设置成 .Net 4.x 就可以了(吐了,谁知道这么简单,话说网上的文章能不能与时俱进一下,翻了好多才找到一个),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
{
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]);
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雷区
|