使用ASP.Net insert命令应用于ORACLE数据库表
你好!我试图在ORACLE数据库表中的单个字段中仅插入一个实体,但堆栈跟踪中出现以下错误:使用ASP.Net insert命令应用于ORACLE数据库表,asp.net,oracle,Asp.net,Oracle,你好!我试图在ORACLE数据库表中的单个字段中仅插入一个实体,但堆栈跟踪中出现以下错误: **Stack Trace**: [OracleException(0x80131938):ORA-12154:TNS:无法解析指定的连接标识符 ] System.Data.OracleClient.OracleException.Check(OCIRorHandle errorHandle,Int32 rc)+338968 System.Data.OracleClient.OracleInterna
**Stack Trace**:
[OracleException(0x80131938):ORA-12154:TNS:无法解析指定的连接标识符
]
System.Data.OracleClient.OracleException.Check(OCIRorHandle errorHandle,Int32 rc)+338968
System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(字符串用户名、字符串密码、字符串服务器名、布尔集成安全性、布尔unicode、布尔省略OracleConnectionName)+879
System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions)+129
System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions选项、对象池组ProviderInfo、DbConnectionPool池、DBConnectionOwningObject)+40
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection所有者连接、DbConnectionPool池、DbConnectionOptions选项)+31
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection-owningObject)+548
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)+69
System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)+470
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection-owningConnection)+108
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory)+118
System.Data.OracleClient.OracleConnection.Open()+43
System.Web.UI.WebControls.SqlDataSourceView.ExecuteDbCommand(DbCommand命令,DataSourceOperation操作)+378
System.Web.UI.WebControls.SqlDataSourceView.ExecuteInsert(IDictionary值)+399
System.Web.UI.WebControls.SqlDataSource.Insert()+19
ASP.jtrap\u import\u aspx.InsertWeight(对象源,事件参数e)在e:\Documents\Visual Studio 2013\Projects\jtrap\u net v1\jtrap\u net\jtrap\u import.aspx:12中
System.Web.UI.WebControls.Button.OnClick(EventArgs e)+9628722
System.Web.UI.WebControl.Button.RaisePostBackEvent(String eventArgument)+103
System.Web.UI.WebControl.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)+10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)+13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)+35
System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)+1724
这是我的数据源:
<asp:Sqldatasource
ID="OracleServer1" Runat="server"
ConnectionString="Data Source=OracleServer1;Persist Security Info=True;"
ProviderName="System.Data.OracleClient"
InsertCommand="INSERT INTO tbl_object(WEIGHT) VALUES(@Weigh)">
<insertparameters>
<asp:formparameter name="Weigh" formfield="TextBox1" />
</insertparameters>
</asp:Sqldatasource>
这是我的连接字符串,位于my Web.config中:
<connectionStrings>
<add name="OracleConnectionString"
connectionString="Data Source=OracleServer1;Persist
Security Info=True;"
providerName="System.Data.OracleClient"
/>
谢谢你的帮助 我在“代码隐藏”中做了一个更好的选择,因为我更熟悉这种方法并使其工作: 代码隐藏:
Dim strConnection As String = ConfigurationManager.ConnectionStrings("OracleConnectionString").ConnectionString
Dim oracleConnection As New Oracle.DataAccess.Client.OracleConnection(strConnection)
If oracleConnection.State = ConnectionState.Closed Then
MsgBox("Opening oracle connection")
oracleConnection.Open()
MsgBox("Oracle connection successfully opened.")
End If
Dim strQuery As String = "INSERT INTO ......(so on)"
Dim oracleCommand As New OracleCommand(strQuery, oracleConnection)
MsgBox("Inserting values to the table")
oracleCommand.ExecuteNonQuery()
MsgBox("Successfully inserted values into the table")
这是我在web.config文件中的连接字符串代码
<connectionStrings>
<add name="OracleConnectionString"
connectionString="Data Source=localhost;USER ID=username;PASSWORD=password"
providerName="Oracle.DataAccess.Client"
/> </connectionStrings>
那么,您的连接字符串与您机器上的TNS条目不匹配。尝试ti-TNSPING OracleServer1时会发生什么?