一个让我崩溃的问题 关于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'),在服务器上就没问题

哪位遇到过相同问题???帮忙解决啊。。。。。。。
...全文
392 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)
源码链接: https://pan.quark.cn/s/d5c270d5abd6 依据所提供的文档资料,可以掌握若干有关VirtualBox COM对象获取无法成功的问题及其应对措施。 VirtualBox作为一款广受欢迎的开源虚拟化工具,能够让用户在当前运行的操作系统上建立及执行虚拟环境。 COM(Component Object Model)对象是应用于Windows平台的一种技术,旨在促成软件组件之间的交互。 若获取VirtualBox的COM对象遭遇失败,则意味着在与VirtualBox进行交互时遇到了某些障碍,这或许源于注册表设置存在偏差或某些组件未能正确部署。 此类问题的显现通常与安装Genymotion前需先安装VirtualBox有关,但在安装VirtualBox后却遭遇COM对象获取失败的情形。 这种情况可能会干扰VirtualBox的正常运作,使用户无法进行虚拟机的管理或构建。 解决方案包括若干步骤,其核心在于对Windows注册表的编辑操作。 注册表是Windows操作系统用于存储配置数据的数据库,其中包含了系统软件与硬件的配置详情,亦涵盖了COM对象的相关信息。 一旦COM对象的注册资料出现异常,系统便无法准确加载及执行相应的组件。 根据文件所载信息,处理方案包含以下环节:1. 在Windows环境中通过“regedit”指令启动注册表编辑器。 此步骤涉及在开始菜单的运行窗口中键入指令并执行。 2. 随后,依照文件中的指引,需要在注册数据库中定位特定的键值路径。 这些路径涵盖: - HKEY_CLASSES_ROOT\CLSID\{***-0000-0000-C000-***}\InprocServer32 - HKEY_CLASSES_ROOT\CLSID...
内容概要:本文介绍了一种基于局部高斯分布拟合能量驱动的活动轮廓模型,用于图像分割任务。该方法属于区域型主动轮廓模型,通过变分水平集方法实现轮廓演化,能够有效分割具有复杂边界或弱边界的图像目标。其核心思想是利用图像局部区域的灰度统计特性,构建基于高斯分布的能量函数,使轮廓在演化过程中对噪声具有较强鲁棒性,并能准确捕捉目标边缘。该模型特别适用于不均匀光照、低对比度等挑战性图像的分割场景,Matlab代码实现便于科研人员理解算法细节并进行二次开发。; 适合人群:具备一定图像处理基础,从事计算机视觉、医学图像分析、遥感影像处理等领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①解决传统边缘检测方法在噪声干扰下分割效果差的问题;②实现对灰度不均、边界模糊图像的精确分割;③为后续的图像识别、目标测量等任务提供高质量的分割结果;④作为学习水平集方法与主动轮廓模型的经典案例进行教学与研究。; 阅读建议:建议读者结合Matlab代码逐步调试运行,观察水平集函数的演化过程,深入理解能量泛函构造、梯度下降法求解及水平集更新机制,同时可尝试在不同类型的图像上测试算法性能并进行参数调优。

62,263

社区成员

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

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

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

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