无法使用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();
}
}
}
祝你好运!
适合我的连接字符串是
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。. NET为Oracle 11g正确添加了对Oracle. dataaccess .dll的引用到您的项目中,并在连接字符串中添加提供者名称