C#webservice连接Oracle数据库问题

Keo_Q 2014-09-16 02:42:55
电脑装的vs2008
开发webservice需要操作数据库
报错如下:
2014-09-16 14:39:03:GetTableCount()_ORA-12154: TNS: 无法解析指定的连接标识符

其他情况如下:
1.同样代码拷贝到服务器上(vs2008)调试是没问题的
2.数据库连接串用sqlplus直接连也是ok的
3.把数据库操作代码拷贝到本机winform(不做任何修改)也是没问题的 就在webservice里面总报错
...全文
1865 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
likecsda 2016-04-07
  • 打赏
  • 举报
回复
这个问题解决了吗?
shaken 2015-06-16
  • 打赏
  • 举报
回复
记得有个帖子,也是类似问题,说是编译的目标设置一下就可以了
Keo_Q 2014-09-18
  • 打赏
  • 举报
回复
引用 4 楼 LvCoo 的回复:
装ORacle的客户端,还要正确配置
可是我在winform里面连接数据库也没任何问题的 我就是单纯的不想重装Oracle 没其他解决方法了?
LvCoo 2014-09-18
  • 打赏
  • 举报
回复
装ORacle的客户端,还要正确配置
Keo_Q 2014-09-18
  • 打赏
  • 举报
回复
@bafzxzh 回复于: 2014-09-18 10:26:52 把代码贴出来 代码肯定是没问题的 我拷贝到其他机器上是没问题的 我怀疑是因为我64的机子装的32的Oralce的关系 但是除了重装Oracle还有其他定位方法么。。。。 [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ToolboxItem(false)] public class Service1 : System.Web.Services.WebService { string dbInfo = "Data Source=orcl;User Id=sde;Password=sde;"; [WebMethod(Description = "GetTableCount")] public string GetTableCount(string strSql) { try { OracleConnection conn = new OracleConnection(); conn.ConnectionString = dbInfo; if (conn != null && conn.State == ConnectionState.Closed) { conn.Open(); } OracleCommand cmd = new OracleCommand(); cmd.Connection = conn; cmd.CommandText = strSql; string counts = cmd.ExecuteScalar().ToString(); conn.Close(); return counts.ToString(); } catch (Exception ex) { WriteErrorLog we = new WriteErrorLog(); we.WriteLog("GetTableCount()_" + ex.Message, "error"); return "-1"; } } [WebMethod(Description = "getWzAndSixSms")] public DataSet getWzAndSixSms(string strSql) { DataSet dsReturn = new DataSet(); OracleConnection conn = new OracleConnection(); conn.ConnectionString = dbInfo; if (conn != null && conn.State == ConnectionState.Closed) { conn.Open(); } OracleDataAdapter oda = new OracleDataAdapter(strSql, conn); oda.Fill(dsReturn, "Table"); conn.close(); return dsReturn; } [WebMethod(Description = "updateSmsStatus")] public string updateSmsStatus(string strSql) { OracleConnection conn = new OracleConnection(); conn.ConnectionString = dbInfo; if (conn != null && conn.State == ConnectionState.Closed) { conn.Open(); } OracleCommand cmd = new OracleCommand(); cmd.Connection = conn; cmd.CommandText = strSql; string counts = cmd.ExecuteNonQuery().ToString(); conn.close(); return counts; }
bafzxzh 2014-09-18
  • 打赏
  • 举报
回复
把代码贴出来
LvCoo 2014-09-18
  • 打赏
  • 举报
回复
引用 5 楼 mjqt20100825 的回复:
[quote=引用 4 楼 LvCoo 的回复:] 装ORacle的客户端,还要正确配置
可是我在winform里面连接数据库也没任何问题的 我就是单纯的不想重装Oracle 没其他解决方法了?[/quote] .NET上似乎没有 thin方式的驱动,真不想装客户端,可以考虑ODBC,但是也是要有ODBC驱动的
Keo_Q 2014-09-16
  • 打赏
  • 举报
回复
大牛速来 求救啊~~~~

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧