ADO.NET 基础教程(二)

上一节讲到了怎样使用ADO.NET来查询数据,这节讲怎么样运行SQL的SELECT、INSERT和UPDATE命令及存储过程

1、存储过程

C#的代码如下:

/// <summary>
  /// 存储过程参数结构
  /// </summary>
  public struct ProcParam
  {
   public string ParamName;
   public string ParamValue;
   public System.Data.SqlDbType ParamType ;
  }

/// <summary>
  /// 执行一个返回数据集的存储过程
  /// </summary>
  /// <param name="strProcName">存储过程名称</param>
  /// <param name="alParamName" >参数名称</param>
  /// <param name="alParamValue" >参数值</param>
  /// <param name="constring">数据连接串</param>
  /// <returns></returns>
  public static System.Data.SqlClient.SqlDataReader  ExecProcedure(string strProcName,System.Collections.ArrayList alParamName,System.Collections.ArrayList alParamValue,string constring)
  {
   
   System.Data.SqlClient.SqlConnection cn=new System.Data.SqlClient.SqlConnection (constring);
   cn.Open ();
   System.Data.SqlClient.SqlCommand cmd=new System.Data.SqlClient. SqlCommand ();
   cmd.Connection =cn;
   cmd.CommandType =System.Data.CommandType.StoredProcedure ;
   cmd.CommandText =strProcName;
   for(int i=0;i<alParamName.Count ;i++)
   {
    System.Data.SqlClient.SqlParameter  param=new System.Data.SqlClient.SqlParameter (alParamName[i].ToString (),alParamValue[i].ToString ());
    cmd.Parameters.Add (param);
   }
   System.Data.SqlClient.SqlDataReader dr;
   dr=cmd.ExecuteReader ();
   return dr;
  }

上述代码可以执行任意参数的存储过程(返回一个数据集)

2、直接SQL命令

  /// <summary>
  /// 执行一个返回字符串的SQL SCRIPT
  /// </summary>
  /// <param name="constring" >连接串</param>
  /// <param name="SQL_COMMAND" >SQL命令</param>
  /// <returns>返回数据集</returns>
  public static string  GetDataString(string SQL_COMMAND,string constring)
  { 
   System.Data.SqlClient.SqlConnection cn=new System.Data.SqlClient.SqlConnection (constring);
   cn.Open ();
   System.Data.SqlClient.SqlCommand cmd=new System.Data.SqlClient. SqlCommand ();
   cmd.Connection =cn;
   cmd.CommandType =System.Data.CommandType.Text  ;
   cmd.CommandText =SQL_COMMAND;
   string str="";
   try
   {
    str=cmd.ExecuteScalar().ToString ();
   }
   catch(System.Data.SqlClient.SqlException e)
   {
    System.Diagnostics.Debug.WriteLine (e.Message );
   }
   catch(Exception ex)
   {
    System.Diagnostics.Debug.WriteLine (ex.Message );
   }
   return str;
  }

/// <summary>
  /// 执行一个无返回的SQL
  /// </summary>
  /// <param name="SQL_COMMAND"></param>
  /// <param name="constring"></param>
  /// <returns></returns>
  public static void  Executesql(string SQL_COMMAND,string constring)
  { 
   System.Data.SqlClient.SqlConnection cn=new System.Data.SqlClient.SqlConnection (constring);
   cn.Open ();
   System.Data.SqlClient.SqlCommand cmd=new System.Data.SqlClient. SqlCommand ();
   cmd.Connection =cn;
   cmd.CommandType =System.Data.CommandType.Text  ;
   cmd.CommandText =SQL_COMMAND;
   try
   {
    cmd.ExecuteNonQuery ();
   }
   catch(System.Data.SqlClient.SqlException e)
   {
    System.Diagnostics.Debug.WriteLine (e.Message );
   }
   catch(Exception ex)
   {
    System.Diagnostics.Debug.WriteLine (ex.Message );
   }
  }

以上代码建议放在一个类中,如果有问题请与我联系msn:ilxc8292@hotmail.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ADO组件的使用需要利用支持COM的高级语言,例如ASP中的VBScript或者Visual Basic,甚至Delphi,微软的竞争对手Borland的一个产品,现在也支持使用ADO来访问数据库。   在新的编程框架.NET Framework中, 微软也提供了一个面向Internet的版本的ADO,称为ADO.NET。其对象模型和传统ADO差别很大。 ADO是一种面向对象的编程接口,微软介绍说,与其同IBM和Oracle提倡的那样,创建一个统一数据库,不如提供一个能够访问不同数据库的统一接口,这样会更加实用一些。为实现这一目标,微软在数据库和微软的OLE DB中提供了一种“桥”程序,这种程序能够提供对数据库的连接。 开发人员在使用ADO时,其实就是在使用OLE DB,不过OLE DB更加接近底层。ADO的一项属性远程数据服务,支持“数据仓库”ActiveX 组件以及高效的客户端缓存。作为ActiveX的一部分,ADO也是COM组件的一部分。ADO是由早期的微软数据接口??远程数据对象RDO演化而来的。RDO同微软的ODBC一同连接关系数据库,不过不能连接非关系数据库。   ADO向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。对那些熟悉RDO的程序员来说,你可以把OLE DB比作是ODBC驱动程序。如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLE DB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLE DB提供者(OLE DB provider)。目前,虽然OLE DB提供者比较少,但微软正积极推广该技术,并打算用OLE DB取代ODBC。   ADO向VB程序员提供了很多好处。包括易于使用,熟悉的界面,高速度以及较低的内存占用(已实现ADO2.0的Msado15.dll需要占用342K内存,比RDO的Msrdo20.dll的368K略小,大约是DAO3.5的Dao350.dll所占内存的60%)。同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。因此你可以只创建一个"Connection"对象,但是可以有多个,独立的"Recordset"对象来使用它。ADO针对客户/服务器以及WEB应用程序作了优化。
.Net全套教程是由赵剑宇编写的一套关于.Net开发的教学资料。该教程旨在帮助初学者快速入门和深入理解.Net开发框架。该教程分为多个篇章,从基础知识到高级技术,逐步介绍和讲解.Net开发的各个方面。 在该教程的基础部分,赵剑宇详细介绍了.Net框架的概念和架构,并引导读者如何安装和配置.Net开发环境。接着,他详细介绍了.Net中的常用编程语言,如C#和VB.Net,并从语法、数据类型、控制流等方面进行了讲解。 在进阶部分,赵剑宇引导读者学习.Net的核心技术,如面向对象编程、异常处理、多线程编程等。此外,他还介绍了.Net中的常用工具和框架,如ASP.Net、ADO.Net、Entity Framework等,帮助读者了解和掌握.Net开发中常用的技术和工具。 除了基础和进阶部分,赵剑宇还在教程中提供了丰富的示例代码和练习题,帮助读者巩固所学知识并进行实践。这些示例代码涵盖了各种常见的应用场景,如Web开发、数据库操作、GUI编程等,使读者能够通过实际的练习提升他们的编程技能和解决问题的能力。 通过学习赵剑宇编写的.Net全套教程,读者可以系统地学习和掌握.Net开发的基本概念和技术,并能够应用所学知识进行实际的开发工作。无论是初学者还是有一定经验的开发者,都可以从这套教程中获得丰富的知识和经验,提升自己在.Net开发领域的技术水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值