一、最简单的连接方式,去Oracle官网下载 Oracle.managedDataAccess.dll,将其添加到plugins文件夹下(纯c#开发就直接在vs里面引用就好),接下来在vs里面 using Oracle.managedDataAccess.Client命名空间即可;不想去官网下载可以在这里下载。
以下是连接的简单示例: 在项目里可以建一个Conn类,专门用来处理数据库的连接以及查询等操作public class ConnDB
{
protected OracleConnection con;
string connString = "User ID=sys;Password=root;DBA Privilege=SYSDBA;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.220)(PORT = 1521))) (CONNECT_DATA =(SERVICE_NAME = orcl)))";
public ConnDB()
{
con = new OracleConnection(connString);
try
{
Open();
//Debug.Log("数据库连接成功");
}
catch (Exception e)
{
Debug.Log(e);
}
}
public void Open()
{
if (con.State == ConnectionState.Closed)
{
try
{
//打开数据库连接
con.Open();
}
catch (Exception e)
{
throw e;
}
}
}
public void Close()
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
}
public OracleDataReader ExecuteSql(string sql)
{
OracleCommand cmd = new OracleCommand(sql, con);
OracleDataReader dr=null;
try
{
dr= cmd.ExecuteReader();
}
catch (OracleException e)
{
Debug.Log(e);
}
return dr;
}
}
再建一个测试类用于读取表数据,(别忘了引用命名空间)
public class Test
{
void Start()
{
Load();
}
void Load()
{
ConnDB db = new ConnDB();
OracleDataReader dr = db.ExecuteSql("select * from CK_BASIC_AREA");
while (dr.Read())
{
CK_BASIC_AREA c = new CK_BASIC_AREA();
c.Area_id = dr["area_id"].ToString();
c.Area_code = dr["area_code"].ToString();
c.Area_name = dr["area_name"].ToString();
c.State = dr["state"].ToString();
c.Del_flag = dr["del_flag"].ToString();
c.Remark = dr["remark"].ToString();
c.Sec_lvl = dr["sec_lvl"].ToString();
ck_basic_area_Dic.Add(c.Area_id, c);
}
Debug.Log("CK_BASIC_AREA 加载完成");
db.Close();
}
}
以上是读取oracle数据库的一种最简单的方法,需要注意的是要使用unity2017以上的版本,在playersetting 里面把脚本的版本改成4.6,因为导入的dll版本是4.x的。 还有几种方式也试过,没有成功,在此简单说一下: 二。也是使用Oracle官方提供的连接库,oracle.dataAcess.dll,(odp),这种方法貌似要安装客户端,或者需要其他的配置,比较麻烦 三. 微软提供的库:system.data.oracleClient.dll ;有2.0版本的,也有4.x版本的,所以使用unity 5.x的可以到mono 的库里面找到对应的dll,但要引入其他的dll 如oci.dll,之类的,尝试过可以连接但查表一直出现错误,还有一点就是连接的数据库字符串不支持 数据库角色选择,即DBA Privilege=SYSDBA;一种解决方法可以在数据库下新建用户不指定角色。 四。使用第三方库;DDTek.Oracle.dll 没用过
更多推荐
unity连接Oracle数据库
发布评论