ODP.NET:

引用:

using Oracle.DataAccess; //Oracle g 11.2.0
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
//下载 http://www.oracle.com/technetwork/topics/dotnet/downloads/net-downloads-160392.html
//引用:D:\app\geovindu\product\11.2.0\dbhome_1\ODP.NET\bin
//用法参考
//
//http://docs.oracle.com/cd/B28359_01/appdev.111/b28844/procedures_dot_net.htm
//http://docs.oracle.com/cd/B19306_01/win.102/b14307/OracleDataAdapterClass.htm //.net 4.0
//https://docs.oracle.com/cd/B19306_01/server.102/b14220/schema.htm

  数据库连接字符串:

 public string connectionString = @"DATA SOURCE=oracle11g;USER ID=geovin;password=geovindu;";

  

/// <summary>/// 20160918 涂聚文/// Geovin Du/// </summary>public class BookKindListDAL : IBookKindList{///<summary>/// 追加记录///</summary>///<param name="BookKindListInfo"></param>///<returns></returns>public int InsertBookKindList(BookKindListInfo bookKindList){int ret = 0;try{OracleParameter[] par = new OracleParameter[]{new OracleParameter("temTypeName",OracleDbType.NVarchar2,1000),new OracleParameter("temParent",OracleDbType.Int32,4),};par[0].Value = bookKindList.BookKindName;par[1].Value = bookKindList.BookKindParent;ret = OracleHelper.ExecuteSql("proc_Insert_BookKindList", CommandType.StoredProcedure, par);}catch (OracleException ex){throw ex;}return ret;}/// <summary>/// 追加记录返回/// </summary>/// <param name="authorList"></param>/// <param name="authorID"></param>/// <returns></returns>public int InsertBookKindOutput(BookKindListInfo bookKindList, out int bookKindLID){bookKindLID = 0;int ret = 0;try{OracleParameter[] par = new OracleParameter[]{new OracleParameter("temTypeName",OracleDbType.NVarchar2,1000),new OracleParameter("temParent",OracleDbType.Int32,4),new OracleParameter("temId",OracleDbType.Int32,4),};par[0].Value = bookKindList.BookKindName;par[1].Value = bookKindList.BookKindParent;par[2].Direction = ParameterDirection.Output;ret = OracleHelper.ExecuteSql("proc_Insert_BookKindOut", CommandType.StoredProcedure, par);if (ret > 0){bookKindLID =int.Parse(par[2].Value.ToString());}}catch (OracleException ex){throw ex;}return ret;}///<summary>///修改记录///</summary>///<param name="BookKindListInfo"></param>///<returns></returns>public int UpdateBookKindList(BookKindListInfo bookKindList){int ret = 0;try{OracleParameter[] par = new OracleParameter[]{new OracleParameter("BookKindID",OracleDbType.Int32,4),new OracleParameter("BookKindName",OracleDbType.NVarchar2,1000),new OracleParameter("BookKindParent",OracleDbType.Int32,4),};par[0].Value = bookKindList.BookKindID;par[1].Value = bookKindList.BookKindName;par[2].Value = bookKindList.BookKindParent;ret = OracleHelper.ExecuteSql("proc_Update_BookKindList", CommandType.StoredProcedure, par);}catch (OracleException ex){throw ex;}return ret;}///<summary>/// 删除记录///</summary>///<param name="bookKindIDInfo"></param>///<returns></returns>public bool DeleteBookKindList(int bookKindID){bool ret = false;try{OracleParameter par = new OracleParameter("BookKindID", bookKindID);int temp = 0;temp = OracleHelper.ExecuteSql("proc_Delete_BookKindList", CommandType.StoredProcedure, par);if (temp != 0){ret = true;}}catch (OracleException ex){throw ex;}return ret;}///<summary>/// 查询记录///</summary>///<param name="bookKindIDInfo"></param>///<returns></returns>public BookKindListInfo SelectBookKindList(int bookKindID){BookKindListInfo bookKindList = null;try{OracleParameter par = new OracleParameter("BookKindID", bookKindID);using (OracleDataReader reader = OracleHelper.GetReader("proc_Select_BookKindList", CommandType.StoredProcedure, par)){if (reader.Read()){bookKindList = new BookKindListInfo();bookKindList.BookKindID = (!object.Equals(reader["BookKindID"], null)) ? (int)reader["BookKindID"] : 0;bookKindList.BookKindName = (!object.Equals(reader["BookKindName"], null)) ? (string)reader["BookKindName"] : "";bookKindList.BookKindParent = (!object.Equals(reader["BookKindParent"], null)) ? (int)reader["BookKindParent"] : 0;}}}catch (OracleException ex){throw ex;}return bookKindList;}///<summary>/// 查询所有记录///</summary>///<returns></returns>public List<BookKindListInfo> SelectBookKindListAll(){List<BookKindListInfo> list = new List<BookKindListInfo>();BookKindListInfo bookKindList = null;try{using (OracleDataReader reader = OracleHelper.GetReader("proc_Select_BookKindListAll", CommandType.StoredProcedure, null)){while (reader.Read()){bookKindList = new BookKindListInfo();bookKindList.BookKindID = (!object.Equals(reader["BookKindID"], null)) ? (int)reader["BookKindID"] : 0;bookKindList.BookKindName = (!object.Equals(reader["BookKindName"], null)) ? (string)reader["BookKindName"] : "";bookKindList.BookKindParent = (!object.Equals(reader["BookKindParent"], null)) ? (int)reader["BookKindParent"] : 0;list.Add(bookKindList);}}}catch (OracleException ex){throw ex;}return list;}///<summary>/// 查询所有记录///</summary>///<returns></returns>public DataTable SelectBookKindListDataTableAll(){DataTable dt = new DataTable();try{using (DataTable reader = OracleHelper.GetTable("proc_Select_BookKindListAll", CommandType.StoredProcedure, null)){dt = reader;}}catch (OracleException ex){throw ex;}return dt;}}

  System.Data.OracleClient(.net 4.0)

引用:

using System.Collections;
using System.Data;
using System.Configuration;
using System.Data.OracleClient;//.net 4.0//用法参考
//https://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracledataadapter(v=vs.110).aspx
//http://blog.csdn.net/chinawn/article/details/336904
//C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.OracleClient.dll

  数据库连接字符串:

    public string connectionString = @"Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = oracle11g)));user id=geovin;password=geovindu;Persist Security Info=True;";

  

/// <summary>/// 20160918 涂聚文/// Geovin Du/// </summary>public class BookKindListDAL : IBookKindList{///<summary>/// 追加记录///</summary>///<param name="BookKindListInfo"></param>///<returns></returns>public int InsertBookKindList(BookKindListInfo bookKindList){int ret = 0;try{OracleParameter[] par = new OracleParameter[]{new OracleParameter("temTypeName",OracleType.NVarChar,1000),new OracleParameter("temParent",OracleType.Number,4),};par[0].Value = bookKindList.BookKindName;par[1].Value = bookKindList.BookKindParent;ret = OracleHelper.ExecuteSql("proc_Insert_BookKindList", CommandType.StoredProcedure, par);}catch (OracleException ex){throw ex;}return ret;}/// <summary>/// 追加记录返回/// </summary>/// <param name="authorList"></param>/// <param name="authorID"></param>/// <returns></returns>public int InsertBookKindOutput(BookKindListInfo bookKindList, out int bookKindLID){bookKindLID = 0;int ret = 0;try{OracleParameter[] par = new OracleParameter[]{new OracleParameter("temTypeName",OracleType.NVarChar,1000),new OracleParameter("temParent",OracleType.Number,4),new OracleParameter("temId",OracleType.Number,4),};par[0].Value = bookKindList.BookKindName;par[1].Value = bookKindList.BookKindParent;par[2].Direction = ParameterDirection.Output;ret = OracleHelper.ExecuteSql("proc_Insert_BookKindOut", CommandType.StoredProcedure, par);if (ret > 0){bookKindLID =int.Parse(par[2].Value.ToString());}}catch (OracleException ex){throw ex;}return ret;}///<summary>///修改记录///</summary>///<param name="BookKindListInfo"></param>///<returns></returns>public int UpdateBookKindList(BookKindListInfo bookKindList){int ret = 0;try{OracleParameter[] par = new OracleParameter[]{new OracleParameter("BookKindID",OracleType.Number,4),new OracleParameter("BookKindName",OracleType.NVarChar,1000),new OracleParameter("BookKindParent",OracleType.Number,4),};par[0].Value = bookKindList.BookKindID;par[1].Value = bookKindList.BookKindName;par[2].Value = bookKindList.BookKindParent;ret = OracleHelper.ExecuteSql("proc_Update_BookKindList", CommandType.StoredProcedure, par);}catch (OracleException ex){throw ex;}return ret;}///<summary>/// 删除记录///</summary>///<param name="bookKindIDInfo"></param>///<returns></returns>public bool DeleteBookKindList(int bookKindID){bool ret = false;try{OracleParameter par = new OracleParameter("BookKindID", bookKindID);int temp = 0;temp = OracleHelper.ExecuteSql("proc_Delete_BookKindList", CommandType.StoredProcedure, par);if (temp != 0){ret = true;}}catch (OracleException ex){throw ex;}return ret;}///<summary>/// 查询记录///</summary>///<param name="bookKindIDInfo"></param>///<returns></returns>public BookKindListInfo SelectBookKindList(int bookKindID){BookKindListInfo bookKindList = null;try{OracleParameter par = new OracleParameter("BookKindID", bookKindID);using (OracleDataReader reader = OracleHelper.GetReader("proc_Select_BookKindList", CommandType.StoredProcedure, par)){if (reader.Read()){bookKindList = new BookKindListInfo();bookKindList.BookKindID = (!object.Equals(reader["BookKindID"], null)) ? (int)reader["BookKindID"] : 0;bookKindList.BookKindName = (!object.Equals(reader["BookKindName"], null)) ? (string)reader["BookKindName"] : "";bookKindList.BookKindParent = (!object.Equals(reader["BookKindParent"], null)) ? (int)reader["BookKindParent"] : 0;}}}catch (OracleException ex){throw ex;}return bookKindList;}///<summary>/// 查询所有记录///</summary>///<returns></returns>public List<BookKindListInfo> SelectBookKindListAll(){List<BookKindListInfo> list = new List<BookKindListInfo>();BookKindListInfo bookKindList = null;try{using (OracleDataReader reader = OracleHelper.GetReader("proc_Select_BookKindListAll", CommandType.StoredProcedure, null)){while (reader.Read()){bookKindList = new BookKindListInfo();bookKindList.BookKindID = (!object.Equals(reader["BookKindID"], null)) ? (int)reader["BookKindID"] : 0;bookKindList.BookKindName = (!object.Equals(reader["BookKindName"], null)) ? (string)reader["BookKindName"] : "";bookKindList.BookKindParent = (!object.Equals(reader["BookKindParent"], null)) ? (int)reader["BookKindParent"] : 0;list.Add(bookKindList);}}}catch (OracleException ex){throw ex;}return list;}///<summary>/// 查询所有记录///</summary>///<returns></returns>public DataTable SelectBookKindListDataTableAll(){DataTable dt = new DataTable();try{using (DataTable reader = OracleHelper.GetTable("proc_Select_BookKindListAll", CommandType.StoredProcedure, null)){dt = reader;}}catch (OracleException ex){throw ex;}return dt;}}

  System.Data.OleDb

 string connString = "Provider=OraOLEDB.Oracle.1;User ID=geovin;Password=geovindu;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = oracle11g)))";OleDbConnection conn = new OleDbConnection(connString);try{conn.Open();MessageBox.Show(conn.State.ToString());DataTable dt = conn.GetSchema(this.comboBox1.Text.Trim());this.dataGridView1.DataSource = dt;this.textBox1.Text = GetColumnNames(dt);}catch (Exception ex){MessageBox.Show(ex.Message.ToString());}finally{conn.Close();}

  oracle package sql:

/**创建一个名为pkgBookKinds的包查所表中所有内容**/
create or replace package pkg_BookKinds is
--定义一个公有的游标类型cursor_pdt
--ref 可以在程序间传递结果集
--一个程序里打开游标变量,在另外的程序里处理数据
type cursor_pdt is ref cursor;
--声明一个存储过程 ,游标类型参数为输出类型
procedure proc_GetAllBookKind(cur_set out cursor_pdt);
end pkg_BookKinds;/**创建一个包体**/
create or replace package body pkg_BookKinds is--实现包中没有实现的存储过程procedure proc_GetAllBookKind(cur_set out cursor_pdt) asbegin --打开游标,由于定义游标时使用ref处理游标可以推迟到客户端open cur_set for select * from BookKindList;end;
end;/**使用过程测试定义的存储过程**/
declare
--定义游标类型的变量
cur_set pkg_BookKinds.cursor_pdt;
--定义行类型
pdtrow BookKindList%rowtype;
begin--执行存储过程pkg_BookKinds.proc_GetAllBookKind(cur_set);--遍历游标中的数据LOOP--取当前行数据存入pdtrowFETCH cur_set INTO pdtrow;--如果未获取数据就结束循环EXIT WHEN cur_set%NOTFOUND;--输出获取到的数据DBMS_OUTPUT.PUT_LINE (pdtrow.BookKindID||','||pdtrow.BookKindName);END LOOP;CLOSE cur_set;end;

 

--创建包以游标的形式返回BookKindList的结果集
create or replace package pkg_BookKindList is
-- Author  : geovindutype mycur is ref cursor;  procedure fun_GetRecords(cur_return out mycur);
end pkg_BookKindList;create or replace package body pkg_BookKindList is-- Function and procedure implementationsprocedure fun_GetRecords(cur_return out mycur)is    beginopen cur_return for select * from BookKindList;end fun_GetRecords;end pkg_BookKindList;declare
--定义游标类型的变量
cur_return pkg_BookKindList.mycur;
--定义行类型
pdtrow BookKindList%rowtype;
begin--执行存储过程pkg_BookKindList.fun_GetRecords(cur_return);--遍历游标中的数据LOOP--取当前行数据存入pdtrowFETCH cur_return INTO pdtrow;--如果未获取数据就结束循环EXIT WHEN cur_return%NOTFOUND;--输出获取到的数据DBMS_OUTPUT.PUT_LINE (pdtrow.BookKindID||','||pdtrow.BookKindName);END LOOP;CLOSE cur_return;
end;

  

 C# 3.5 调用查询:

 /// <summary>/// /// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void Form3_Load(object sender, EventArgs e){BindGridView();}/// <summary>/// /// </summary>private void BindGridView(){OracleConnection conn = new OracleConnection(connectionString);//ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionStringOracleCommand comm = new OracleCommand("pkg_BookKindList.fun_GetRecords", conn);comm.Parameters.Add("cur_return", OracleType.Cursor).Direction = ParameterDirection.Output;comm.CommandType = CommandType.StoredProcedure;DataSet ds = new DataSet();using (OracleDataAdapter da = new OracleDataAdapter(comm)){da.Fill(ds);}this.dataGridView1.DataSource = ds.Tables[0].DefaultView;}

  

 /// <summary>/// /// </summary>private void BindGridViewOther(){OracleConnection conn = new OracleConnection(connectionString);//ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionStringOracleCommand comm = new OracleCommand("pkg_BookKindList.fun_GetRecords", conn);comm.CommandType = CommandType.StoredProcedure;//定义参数,注意参数名必须与存储过程定义时一致,且类型为OracleType.CursorOracleParameter cur_set = new OracleParameter("cur_return", OracleType.Cursor);//设置参数为输出类型cur_set.Direction = ParameterDirection.Output;           //添加参数comm.Parameters.Add(cur_set);DataSet ds = new DataSet();using (OracleDataAdapter da = new OracleDataAdapter(comm)){da.Fill(ds);}this.dataGridView1.DataSource = ds.Tables[0].DefaultView;}

  

Oracle sql:

---某条记录的字段
drop PROCEDURE proc_Select_BookKindName;CREATE OR REPLACE PROCEDURE proc_Select_BookKindName(kind_id IN BookKindList.BookKindID%type) AS--声明语句段v_name varchar2(20);
BEGIN--执行语句段SELECT o.BookKindName INTO v_name FROM BookKindList o where o.BookKindID=kind_id;dbms_output.put_line(v_name);
EXCEPTION--异常处理语句段WHEN NO_DATA_FOUND THEN dbms_output.put_line('NO_DATA_FOUND');
END;--测试
begin
proc_Select_BookKindName(1);
end;---一条记录
--创建包:
create or replace package pack_BookKindId is type cur_BookKindId is ref cursor;
end pack_BookKindId;
--创建存储过程
create or replace procedure proc_curBookKindId(p_id in number,p_cur out pack_BookKindId.cur_BookKindId)
is   v_sql varchar2(400);
begin  if p_id = 0 then   open p_cur for select * from BookKindList; else   v_sql := 'select * from BookKindList where BookKindID =: p_id';  open p_cur for v_sql using p_id;   end if;
end proc_curBookKindId;--测试查询一条记录存储过程
-- Test statements here
set serveroutput on
declare   v_id number := 1; --0 时,所有记录 v_row BookKindList%rowtype;   --注意这里是表名p_cur pack_BookKindId.cur_BookKindId;
begin   proc_curBookKindId(v_id, p_cur);  loop  fetch p_cur into v_row;  exit when p_cur%notfound;  DBMS_OUTPUT.PUT_LINE(v_row.BookKindName||'='||v_row.BookKindID);  end loop;  close p_cur;
end;

  

ODP.NET:

  ///<summary>/// 查询所有记录///</summary>///<returns></returns>public List<BookKindListInfo> SelectBookKindListAll(){List<BookKindListInfo> list = new List<BookKindListInfo>();BookKindListInfo bookKindList = null;try{//定义参数,注意参数名必须与存储过程定义时一致,且类型为OracleType.CursorOracleParameter cur_set = new OracleParameter("cur_return", OracleDbType.RefCursor);//设置参数为输出类型cur_set.Direction = ParameterDirection.Output;//OracleHelper.ExecuteReader(connectionString, CommandType.StoredProcedure, "pkg_Select_BookKindListAll.proc_Select_BookKindListAll", cur_set)using (OracleDataReader reader = OracleHelper.GetReader("pkg_Select_BookKindListAll.proc_Select_BookKindListAll", CommandType.StoredProcedure, cur_set)){while (reader.Read()){bookKindList = new BookKindListInfo();string s = reader["BookKindID"].ToString();bookKindList.BookKindID = (!object.Equals(reader["BookKindID"], null)) ? (decimal)reader["BookKindID"] : 0;bookKindList.BookKindName = (!object.Equals(reader["BookKindName"], null)) ? (string)reader["BookKindName"] : "";bookKindList.BookKindParent = (!object.Equals(reader["BookKindParent"], null)) ? (decimal)reader["BookKindParent"] : 0;list.Add(bookKindList);}}}catch (OracleException ex){throw ex;}return list;}///<summary>/// 查询所有记录///</summary>///<returns></returns>public DataTable SelectBookKindListDataTableAll(){DataTable dt = new DataTable();try{//定义参数,注意参数名必须与存储过程定义时一致,且类型为OracleType.CursorOracleParameter cur_set = new OracleParameter("cur_return", OracleDbType.RefCursor);//设置参数为输出类型cur_set.Direction = ParameterDirection.Output;//添加参数//comm.Parameters.Add(cur_set);using (DataTable reader = OracleHelper.GetTable("pkg_Select_BookKindListAll.proc_Select_BookKindListAll", CommandType.StoredProcedure, cur_set)){dt = reader;}}catch (OracleException ex){throw ex;}return dt;}

  

转载于:https://www.cnblogs.com/geovindu/p/5881963.html

csharp: ODP.NET,System.Data.OracleClient(.net 4.0) and System.Data.OleDb读取Oracle g 11.2.0的区别...相关推荐

  1. [置顶] Oracle 11.2.0.3.0 Active Data Guard 遇 ORA-10458、ORA-01152、ORA-01110 错误

    今天第一次配 Oracle 11g R2 Active Data Guard,在用 RMAN 创建好 physical standby database 后, 尝试将 standby 以 read o ...

  2. System.Data.OracleClient.OracleConnection已过时

    解决办法如下: 1.把原来的using System.Data.OracleClient;去掉 2.在oracle安装目录下找到Oracle.DataAccess.dll 添加引用:using Ora ...

  3. “System.Data.OracleClient.OracleConnection”已过时

    处理办法: 在oracle 安装目录下 找到 Oracle.DataAccess.dll添加引用,然后 using Oracle.DataAccess.Client; 其他的都不用动,即可. 连接字符 ...

  4. C# 一个操作Oracle的简易工具类(通过System.Data.OracleClient)

    2019独角兽企业重金招聘Python工程师标准>>> 一.关于本文 运行本文中的代码,需要 1)需要手动添加引用System.Data.OracleClient 在代码最前面加入这 ...

  5. System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本?

    System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本? 环境: Win XP SP2+Oracle 10 g+VS 2005 错误:System.D ...

  6. system data oracle,System.Data.OracleClient大全

    [实例简介] [实例截图] [核心代码] System.Data.OracleClient ├── X64 │   ├── 2.0.50727.1433 (REDBITS.050727-1400) │ ...

  7. .net调用Oracle 报错:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本问题

    我又重拾.net搞一搞.老本行了,不过现在已投奔java阵营. 用visual studio 2022运行asp.net程序,结果在读取数据库的时候报错: .net调用Oracle 报错:System ...

  8. 解决“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。

    出现这个错误原因其实是Oracle在服务器上部署的原因,具体操作按照下面的方法就可以. 在用VSTS2005/2008+Oracle9做环境连接Oracle时候,在VS 开发服务器运行正常,但IIS服 ...

  9. 解决“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”

    在用VS.NET2005+Oracle9.2进行开发的时候,在本地测试可以通过,但是在服务器上不能实现(复制网站,发布网站都不行),报错的具体内容,没记下来,大概就是: "System.Da ...

最新文章

  1. iOS 消息的传递机制
  2. java生成pdf看不到至值_java生成pdf报错找不到DPF标题签名
  3. luogu p3515 Lightning Conductor
  4. vs2010开发php,VS2010 下 开发C++
  5. cocos2dx中关于Action动作的相关API的详细介绍
  6. w3c的ajax操作函数,关于ajax的使用方法_例题、ajax的数据处理
  7. 指针数组、数组指针、指针函数、函数指针
  8. 【视频】Java从x86到Arm跨平台,实战一下!
  9. vue中请求接口怎么封装公共地址_如何修改Vue打包后文件的接口地址配置(转自网络)...
  10. 质数——埃式筛法和欧式筛法
  11. 基于Spring的包含特定注解bean的package扫描工具
  12. js复制功能的有效方法总结
  13. 深入了解“TXTSETUP.SIF”
  14. 【深度学习】CRNN 文字识别端对端模型 CTC损失
  15. mediasoup server 启动失败排查
  16. 【Android 逆向】Android 中常用的 so 动态库 ( libm.so 数学函数动态库 | liblog.so 日志模块动态库 | libselinux.so 安全模块动态库 )
  17. 学好算法,真的需要智商吗?
  18. SDL —— SDL_ttf
  19. 什么是全栈工程师 摘自360
  20. Deep_Learn关于数组和数的操作

热门文章

  1. 数据库(4)——候选码和主键
  2. vue 圆形百分比进度条_uniapp Vue 圆环进度条
  3. sci translate好用吗_228个学科分类对应12000+本SCI和SSCI期刊,总有你要的那款!
  4. 关于前端设置cookie
  5. javaweb可部署目录结构
  6. Visual Stutio中win32控制台应用程序、win32项目、MFC项目的区别:
  7. 关于java结构中描述正确的是_下列关于Java中类的构造方法的描述,正确的是()...
  8. Simulink工作区无法保存To workspace模块的数据解决办法
  9. MFC中打开文件对话框:CFileDlg
  10. 数据增长率怎么算_20年老股民告诉你5个数据可轻松算出股价是否高估