关于VS.NET的OracleClient类库的两个大BUG,没想到微软支持ORACLE这么差!!!!

death0320 2004-04-30 11:15:59
第一个:
我在用Asp.NET(C#)写操作Oracle数据库的程序时,如果用OracleClient的时候就会出现一个很奇怪的问题,那就是不管我是用DataSet或是OracleDataReader读出一个表中的数据时,只要有记录在同一字段的时候有重复的情况下,我在DataGird中就看到在第一条记录的时候,想同内容字段的值是完整的,可是如果第二条记录就会发现比前一条相同字段记录少一半。有时有很多一样的时候,一半的后面还有一些随机的字符,可是用oleDB就没有这个问题,感觉这是VS.NET的BUG。情况如下:

id name sex birth
1 xxxxxxxx M 19990303
2 xxxx M 1999
3 xxxxC:| M 1999k;k

就如同上面的样子一样,用oleDB用就可以显示正常。大家有没有这种情况,可以试试看。
第二个:
我发现当操作存储过程的时候,出现问题了。我的存储过程如下:
create or replace procedure gettaskid(taskid out varchar2,tasktype in varchar2) is
v_maxtaskid varchar2(14);
v_currentdate varchar2(8);
begin
select to_char(sysdate,'yyyymmdd') into v_currentdate from dual;
select max(task_id) into v_maxtaskid from d_ent_task where task_type = tasktype and to_char(task_date,'yyyymmdd') = v_currentdate;
if v_maxtaskid is null then
taskid := v_currentdate||'000001';
else
taskid := to_char(to_number(v_maxtaskid) + 1);
end if;

end gettaskid;
功能就是得出一个序号。用以下代码出错怎么也没有用,得出来的值还是上面存储过程if中的值,不会自己加1。
public string ExecProc(string myType)
{
string temp="";
conn=DBConnect.GetConnection();
cmd=conn.CreateCommand();
cmd.Connection=conn;
cmd.CommandText="gettaskid";
cmd.CommandType=System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add("taskid",OracleType.VarChar,14);
cmd.Parameters["taskid"].Direction=ParameterDirection.Output;
cmd.Parameters.Add("tasktype",OracleType.VarChar,2);
cmd.Parameters["tasktype"].Direction=ParameterDirection.Input;
cmd.Parameters["tasktype"].Value="04";
conn.Open();
cmd.ExecuteNonQuery();
temp=(string)cmd.Parameters["taskid"].Value;
conn.Close();
return temp;
}
如果换成OleDb来做就能得出加1后的值。

唉~~~~没想到微软竟对Oracle支持的这么差。
...全文
178 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
deanzheng 2004-06-17
  • 打赏
  • 举报
回复
楼主老大:你是怎么连接oracle的,可否告知,谢谢!
我已经搞了好几天了,可还连不上数据库,甭说发现bug了。
你的数据库是在本机还是服务器,如果是在服务器上,请指教如何连接。
万分感谢
email:zhengxf@trane.com
msn:kaisa_z@hotmail.com

盼望您的答复
xiangding 2004-06-17
  • 打赏
  • 举报
回复
不会的,看看你程序吧,
一般来说这是小东东,不会有这样的bug的
vzxq 2004-04-30
  • 打赏
  • 举报
回复
nod ,什么中国也能出个 oracle 或 mircorsoft 啊
内容概要:本文围绕“基于共享储能服务的智能楼宇双层优化配置”展开研究,提出了一种结合上层共享储能配置优化与下层楼宇内部能源调度优化的双层协同模型,通过Matlab代码实现,旨在提升智能楼宇在复杂能源环境下的运行效率与经济性。研究充分考虑光伏出力、负荷需求等不确定性因素,引入多维核密度估计、场景生成与削减等技术进行不确定性建模,并融合需求响应、微电网调度等先进理念,实现了对综合能源系统中储能资源的高效配置与动态调控,具有较强的理论深度与工程应用价值。; 适合人群:具备电力系统、可再生能源、优化算法或综合能源系统等相关背景,从事科研、工程应用或课题研究的研发人员、研究生及高年级本科生。; 使用场景及目标:①应用于智能楼宇、园区微电网、虚拟电厂等场景中的储能规划与运行优化;②支撑高水平学术论文(如EI/SCI)的复现、课题申报、毕业设计及实际项目的双层优化建模与求解实践。; 阅读建议:建议结合提供的Matlab代码进行实操演练,重点理解双层优化架构的设计逻辑、求解策略(如Benders分解、主从博弈等)及不确定性处理方法,同时可参考文中关联技术(如场景生成、需求响应)拓展研究思路与应用场景。

62,271

社区成员

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

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

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

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