我正在研究xamarin应用程序试图将这个xamarin pcl(可移植类lib)项目与使用12.2 oracle数据库的远程数据库服务器连接起来,我找到一篇关于将c#连接到oracle数据库服务器的文章,基于我的代码就像跟着......
xaml代码:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:datatest"
x:Class="datatest.MainPage"
Title="main">
<StackLayout>
<Button Clicked="btn_clicked" Text="click me" />
</StackLayout>
</ContentPage>
c#code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Oracle.DataAccess.Client;
using System.Data;
namespace datatest
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
string oradb = "Data Source=(DESCRIPTION =" + "(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))" + "(CONNECT_DATA =" + "(SERVER = DEDICATED)" + "(SERVICE_NAME = orcl.tdsb.on.ca)));" + "User Id= system;Password=<strong>Patel218</strong>;";
public void btn_click(object sender,EventArgs e) {
OracleConnection conn = new OracleConnection(oradb);
conn.Open();
if (conn.State == ConnectionState.Open)
{
DisplayAlert("connected", "wow", "ok");
}
else
{
DisplayAlert("sorry", "sorry", "ok");
}
// Close and Dispose OracleConnection object
conn.Close();
conn.Dispose();
if (conn.State == ConnectionState.Closed)
{
DisplayAlert("disconnected", "wow", "ok");
}
else
{
DisplayAlert("sorry", "sorry", "ok");
}
}
}
}
我已经仔细检查过每一个可能的东西,它仍然要求我提供system.drawing和实体框架6.0.0,我试图进入但是它还没有准备好支持一些程序集或一些NuGet包装现在还有其他任何方式将这种xamarin应用程序连接到远程oracle数据库,该数据库将通过PC上的远程服务器使用本地区域的INTRANET连接与应用程序连接。
答案 0 :(得分:2)
创建REST服务,不要直接连接到外部数据库。重新思考你对安全性的逻辑思考(所有授权信息都将在反编译的Android应用程序中提供),可扩展性等等。