一个让我崩溃的问题 关于OleDbCommangd.OleDbParameterCollection.Add

cco3322 2011-08-23 02:57:08
一个让我崩溃的问题 关于OleDbCommangd.OleDbParameterCollection.Add

下面这段代码,在我本机上好用,在服务器上就不好用 找了一周问题了没找出来原因,崩溃中。。。

本机环境:XP SP3、VS2005
服务器:Windows2003 server sp2、vs2005

数据库:oracle10g(本机和服务器指向同一个数据库)

string asUser = "ADMIN";

StringBuilder commandText = new StringBuilder("select password from myuser where usr_login=?");
DataSet ds = new DataSet();
OleDbConnection Conn = null;
string strConn = "Provider=OraOLEDB.Oracle.1;Password=Password;Persist Security Info=True;User ID=Userid;Data Source=ora10g;Extended Properties=";

try
{
Conn = new OleDbConnection(strConn);
Conn.Open();

OleDbCommand DSCmd = new OleDbCommand(commandText.ToString(), Conn);

DSCmd.Parameters.Add("@usr_login", OleDbType.VarChar).Value = asUser;

object obj = DSCmd.ExecuteScalar();

Response.Write(obj.ToString());
}
catch (Exception ee)
{
throw new Exception(ee.Message);
}
finally
{
Conn.Close();
}

如果把SQL select password from myuser where usr_login=? 中的占位符?改成字符串(比如:'ADMIN'),在服务器上就没问题

哪位遇到过相同问题???帮忙解决啊。。。。。。。
...全文
265 57 打赏 收藏 转发到动态 举报
写回复
用AI写文章
57 条回复
切换为时间正序
请发表友善的回复…
发表回复
cco3322 2011-08-26
  • 打赏
  • 举报
回复
再顶起来

重装系统

重装oracle 重装vs2005仍旧不好用

崩溃2.0 。。。。
zhou_xuexi 2011-08-23
  • 打赏
  • 举报
回复
这样吧,你单独把这块代码弄出来看看有没有问题,如果有酒换成OrackeClient试试看
cco3322 2011-08-23
  • 打赏
  • 举报
回复
[Quote=引用 53 楼 unling 的回复:]
这么怪的问题,一般就是毫不起眼的小地方的问题
[/Quote]

是啊 能是哪涅??

谁能借我一双慧眼啊~~~~~~~~~~~~~~
cco3322 2011-08-23
  • 打赏
  • 举报
回复
[Quote=引用 52 楼 sandy945 的回复:]
OLE DB DataProvider 使用问号 (?) 的定位参数,而不使用命名参数。

参数完全依赖顺序。
[/Quote]

是啊

就代码来说,应该是没问题的。因为同样的代码(复制、粘贴过来的),在我机器上好用,服务器上步好用

能是咋会事涅???
unling 2011-08-23
  • 打赏
  • 举报
回复
这么怪的问题,一般就是毫不起眼的小地方的问题
阿非 2011-08-23
  • 打赏
  • 举报
回复
OLE DB DataProvider 使用问号 (?) 的定位参数,而不使用命名参数。

参数完全依赖顺序。
zhou_xuexi 2011-08-23
  • 打赏
  • 举报
回复
额,那这个问题就有点奇怪了
cco3322 2011-08-23
  • 打赏
  • 举报
回复
你说的很对

可,为什么我放到别的windows2003上好用,就单单这个服务器不行呢?
zhou_xuexi 2011-08-23
  • 打赏
  • 举报
回复
[Quote=引用 47 楼 wlc_link 的回复:]

xp和2003两个系统有时运行程序会有不同,在一个上好使另一上就不好使,最好使用同一种系统,免得出现这种麻烦。
[/Quote]不赞同这个说法,xp和server2003一般不会出现问题,我们开发的都是xp然后放到服务器系统是server2003上都没有啥问题,应该是代码的问题,xp,server2003系统问题这个很少
cco3322 2011-08-23
  • 打赏
  • 举报
回复
[Quote=引用 46 楼 zhou_xuexi 的回复:]
select usr_login,password from myuser where usr_login = :1用冒号也不行
[/Quote]

这个是用plsqldev9追来的

那个:1应该代表形参吧 实参我还没找到



wlc_link 2011-08-23
  • 打赏
  • 举报
回复
xp和2003两个系统有时运行程序会有不同,在一个上好使另一上就不好使,最好使用同一种系统,免得出现这种麻烦。
zhou_xuexi 2011-08-23
  • 打赏
  • 举报
回复
select usr_login,password from myuser where usr_login = :1用冒号也不行
cco3322 2011-08-23
  • 打赏
  • 举报
回复
[Quote=引用 40 楼 zhou_xuexi 的回复:]
你要右击项目添加引用,在.net那个选项下面有
[/Quote]

我可能没说清楚

这部分代码,是从一个成型产品中扒出来的(不是全部,部分,并做了简化)

因为这部分代码是编译过的(我们公司买的)所以,就没法改了,只能说是找出问题出在哪儿,然后纠正过来

我下班后试试你说的这个看好用不

不过怎样,多谢你的热心。

再帮我想想,能是什么原因造成同样代码,不同环境咋就会不管用呢??
cco3322 2011-08-23
  • 打赏
  • 举报
回复
[Quote=引用 42 楼 sandy945 的回复:]
跟踪到的SQL是怎样的
[/Quote]

select usr_login,password from myuser where usr_login = :1
阿非 2011-08-23
  • 打赏
  • 举报
回复
跟踪到的SQL是怎样的
zhou_xuexi 2011-08-23
  • 打赏
  • 举报
回复
行了,你到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727这个目录下找这个System.Data.OracleClient.dll
wlc_link 2011-08-23
  • 打赏
  • 举报
回复
oracle的占位参数是“:参数名”
zhou_xuexi 2011-08-23
  • 打赏
  • 举报
回复
你要右击项目添加引用,在.net那个选项下面有
cco3322 2011-08-23
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 zhou_xuexi 的回复:]
我觉得问题就是占位符的问题,你之前访问的数据库是什么数据库?
[/Quote]

一直访问的是Oracle,在其他环境下部署都没遇到过这个问题
cco3322 2011-08-23
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 zhou_xuexi 的回复:]
呵呵,要添加这个引用的
[/Quote]

是啊,没有啊。。。

System.Data下边只有 Common、Odbc、Oledb、ProviderBase、Sql、SqlClient、SqlTypes
没有你说的OracleClient

加载更多回复(37)

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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