无法使用Oracle连接向表中插入行

本文关键字:插入 连接 Oracle | 更新日期: 2023-09-27 18:03:30

我想知道是什么问题,或者你的建议连接到Oracle。我正在尝试这样做,但当我试图插入值时,它不起作用。

我正在使用Visual Web Developer 2008,当我在数据库资源管理器连接上添加数据库时,它正在工作。但是当我尝试通过这个连接字符串连接时,它不起作用。我错过了什么?

我没有得到异常,所以显然它工作得很好。但是这段代码显然没有插入!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";
    }
}

-------------------------- 更新 ------------------

我找到了做这件事的方法,

我希望这里的任何人都可以在未来使用这个代码…

这段代码创建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();
    }
   }
 }

祝你好运!

无法使用Oracle连接向表中插入行

适合我的连接字符串是

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文件,该文件将在您的安装目录中。还要确保已经安装了ODP。. NETOracle 11g正确添加了对Oracle. dataaccess .dll的引用到您的项目中,并在连接字符串中添加提供者名称