我想知道问题是什么,或者您建议连接到Oracle。我尝试使用此功能但是当我尝试插入值时,它无法正常工作。
我正在使用Visual Web Developer 2008,当我在Database Explorer连接上添加数据库时,它正在运行。但是,当我尝试通过此连接字符串进行连接时,它无法正常工作。我错过了什么?
我没有例外,所以显然它运作良好。但是这段代码显然没有插入! id
列是varchar(45)
。我创建了表格" test"仅用于测试目的。
using System.Data;
using System.Data.OracleClient;
public partial class _Default : System.Web.UI.Page
{
//string oradb = "Data Source=localhost;User ID=root;Password=jesua;Unicode=True;";
String oracle = "User ID=root;Password=jesua;Unicode=True;Data Source=localhost;";
OracleConnection con = new OracleConnection();
public void Conectar() {
try
{
con.Close();
con.ConnectionString = oracle;
con.Open();
}
catch(Exception ex){
throw new Exception("No Conecto " + ex);
}
}
public void desconectar() {
// con.ConnectionString = oracle;
con.Close();
}
public void agregar() {
this.Conectar();
OracleCommand query = new OracleCommand("INSERT INTO testing (id) VALUES ('testing')");
query.ExecuteNonQuery();
desconectar();
}
protected void Button1_Click(object sender, EventArgs e)
{
try {
agregar();
}
catch(Exception ex){
Console.Write("No agrego " + ex);
}
TextBox1.Text = "Conected";
}
}
-------------------------- UPDATE ------------------
所以,
我找到了做到这一点的方法,
我希望此处的任何人都可以在将来使用此代码......
此代码创建Oracle和asp.net C#
之间的连接using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Oracle.DataAccess.Client; // ODP.NET Oracle managed provider
using Oracle.DataAccess.Types;
namespace proyecto
{
public partial class WebForm1 : System.Web.UI.Page
{
public void dbconnect() {
string oradb = "Data Source=localhost;User ID={Yoir ID};Password={Your Password};";
OracleConnection conn = new OracleConnection(oradb); // C#
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "INSERT INTO TESTING(id) VALUES ('valor')";
int rowsUpdated = cmd.ExecuteNonQuery();
if (rowsUpdated == 0)
Console.Write("Record not inserted");
else
Console.Write("Success!");
conn.Dispose();
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
this.dbconnect();
}
}
}
祝你好运!
答案 0 :(得分:0)
适用于我的连接字符串是
connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1522))
(CONNECT_DATA=(SERVICE_NAME=XE)));User Id=system;Password=pass;"
providerName="Oracle.DataAccess.Client"/>
您似乎缺少服务名称和提供商名称。您可以在 tnsnames.ora 文件中找到服务名称,该文件将位于您的安装目录中。还要确保已正确安装 Oracle 11g 的 ODP.NET ,将 Oracle.DataAccess.dll 的引用添加到项目中并添加连接字符串中的提供商名称。