ado.net操作数据库常用方法集锦

ado.net中常用数据库操作方法:

(1)SqlDataReader(数据库只读操作)

提供一种从 SQL Server 数据库读取行的只进流的方式,它既然提供只读属性,那么显然当只需要执行读取操作的时候执行,在执行select语句的时候很有必要,

  因为,就执行效率而言,DataReader的效率是最高的。但是,它存在的弊端是,当SqlDataReader没有关闭之前,数据库会一直保持open状态,所以在使用  

  SqlDataReader时,使用完毕应该马上调用close()方法,当然,另一方面,一个连接只能被一个sqldatareader使用,故此需要及早关闭。

SqlCommand cmd=new  SqlCommand(sqlStr,conn);
SqlDataReader reader=cmd.ExecuteReader();
//如果读到了数据,则调用Read()方法返回值为true
if(reader.Read())
{
      //拿到所读到的数据的第一列
  if(!reader.IsDBNull(0))
  {
            //拿到第一列的值
            string str=reader.GetString(0);
         .......
  }
  if(!reader.IsDBNull(1))
  {
           //拿到第二列的字节数据,并将所读到的图片数据输出
           byte[] data=reader.GetSqlBytes[2];
           Response.ContentType="image/gif";
           Response.OutputStream.Write(data,0,data.Length);
        .......
  }
     ......
      reader.Close();
      cmd=null;
}    

(2)SqlDataAdapter与DataSet

ado.net提供很多数据库操作方法,但基本可以分为两大类,一种是以SqlDataReader为主,一行一行的读取数据,另一种就是SqlDataAdapter结合DataSet使用的数据库操作方法

SqlDataReader是直接与数据库连接,使用完即可断开的,其效率较高。而SqlDataAdapter是把数据库中的数据缓存到内存中,以DataSet数据集的方式进行填充。效率较低

 //sqlStr为连接查询字符串,conn为连接字符串
SqlDataAdapter sda=new SqlDataAdapter(sqlStr,conn);

// 新建数据集
DataSet ds=new DataSet();

//填充数据集
//sda.Fill(ds,"user");    //用Fill方法填充DataSet,建立名为user表的映射
sda.Fill(ds);                //另一种填充数据集方式
//DataTable dt=ds.Tables["user"];   //将数据表的数据复制到DataTable对象

DataTable dt=ds.Table[0];             //另一种方式复制到DataTable对象
DataRowCollection rows=dt.Rows; //获取数据行
if(rows.count>0)
{
      ........
}

(3) SqlParameter

一般来说,当输入的sql语句比较复杂的时候,使用SqlParameter具有简单高效,一目了然的效果

string sqlStr="update Jscores set [email protected],[email protected] ,[email protected] ,[email protected]  where [email protected] and [email protected] ";
List<SqlParameter> list=new List<SqlParameter>();
//为sql语句中的每个变量进行赋值
list.Add(new SqlParameter("@intUsual", intUsual));
list.Add(new SqlParameter("@intFinal", intFinal));
list.Add(new SqlParameter("@intScore", intScore));
list.Add(new SqlParameter("@stuNo", stuNo));
list.Add(new SqlParameter("@num", num));
list.Add(new SqlParameter("@strMemo", strMemo));
// 将需要执行的命令传给SqlCommand
SqlCommand cmd=new SqlCommand(sqlStr,conn);
foreach(SqlParameter p in list)

    cmd.Parameters.Add(p) ;

int ret=cmd.ExecuteNonQuery();
//当然上述过程可以合二为一
//    SqlCommand cmd = new SqlCommand("update JScores set [email protected],[email protected] ,[email protected] ,[email protected]  where [email protected] and [email protected] ", conn);
//    cmd.Parameters.AddWithValue("@intUsual", intUsual);
//    cmd.Parameters.AddWithValue("@intFinal", intFinal);
//    cmd.Parameters.AddWithValue("@intScore", intScore);
//    cmd.Parameters.AddWithValue("@stuNo", stuNo);
//    cmd.Parameters.AddWithValue("@num", num);
//    cmd.Parameters.AddWithValue("@strMemo", DBNull.Value);

//    int ret = cmd.ExecuteNonQuery();

  

时间: 2024-10-10 23:52:53

ado.net操作数据库常用方法集锦的相关文章

ado.net操作数据库

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; namespace 操作数据库 { class Program { static void Main(string[] args) { //1.造一个连接字符串 string connstring = "ser

ADO.Net操作数据库的方式

1.使用数据提供程序执行sql或者ddl语句操作数据库. 2.使用oledb操作数据库 3.使用odbc操作数据库 4.使用DataSet操作数据库 前面3种方式都无法避免要使用sql语句,对不同种类数据库要提供不同的sql语句. 第4种可以统一应对,只要遵守以下约定就不需要sql语句. 1.每次操作时要取一个表.不论select.delete.update,先取表到DataSet,然后遍历DataSet,操作相应的记录. 2.insert操作使用 SQL CommandBuilder完成. 该

ASP.NET总结ADO.NET操作数据库五大对象

1.Connection对象主要提供与数据库的连接功能 配置web.config文件 <appSettings> <add key="ConnectionString" value="Server=10.136.*.*;database=MTL;uid=sa;pwd=sa;"/> </appSettings> 创建获取配置节的连接字符串 public SqlConnection GetSqlConnection() {   str

使用ADO.NET操作数据库

如有转载的请注明出处!蟹蟹 1.1使用对象连接OLE DB 数据源 OLE DB 数据源包含具有OLE DB 驱动程序的任何数据源,如SQL Server.Access.Excel.Oracle等. OLE DB 数据源连接字符串必须提供provide属性及其值. 语法格式为 OleDbConnection mycon = new OleDbConnection(provider=提供者:DataSource="文件路径"); 下面以一个案列学习一下 (1)使用OleDb方式读取Exc

减少重复工作,通过泛型、反射写一个通用的Ado.net操作数据库的简单orm底层

创建一个基类BaseEntity: public class BaseEntity { [PrimaryKey] public int Id { get; set; } public DateTime CreateTime { get; set; } public Status Status { get; set; } public string Remark { get; set; } } /// <summary> /// 自增主键标识 /// </summary> publi

MFC,ADO方式实现数据库操作

参考: MSDN数据访问编程 (MFC/ATL): https://msdn.microsoft.com/zh-cn/library/kd4ck1tt.aspx?f=255&MSPPError=-2147217396 ado方式操作数据库封装类的使用范例: http://download.csdn.net/detail/xianglitian/2383423 使用ADO封装类的数据库程序开发实例: http://wenku.baidu.com/link?url=A3g4_Ucz1RuijQMZ8

用ADO操作数据库的方法步骤(ZT)

http://www.cppblog.com/changshoumeng/articles/113437.html 学习ADO时总结的一些经验 用ADO操作数据库的方法步骤 ADO接口简介 ADO库包含三个基本接口:_ConnectionPtr接口._CommandPtr接口和_RecordsetPtr接口. _ConnectionPtr接口返回一个记录集或一个空指针. 通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程.使用_ConnectionPtr接口返回一个

用ADO操作数据库的方法步骤

用ADO操作数据库的方法步骤 学习ADO时总结的一些经验 - 技术成就梦想 - 51CTO技术博客 http://freetoskey.blog.51cto.com/1355382/989218 ADO接口简介 ADO库包含三个基本接口:_ConnectionPtr接口._CommandPtr接口和_RecordsetPtr接口. _ConnectionPtr接口返回一个记录集或一个空指针. 通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程.使用_Connecti

VC++中使用ADO方式操作ACCESS数据库

ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,即使你对OLE DB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBC API.DAO.RDO都要容易使用,并不失灵活性.本文详细地介绍在Visual C++开发环境下如何使用ADO来进行数据库应用程序开发,并给出示例代码.为了使读者朋友都能测试本例提供的代码,我们采用Access数据库,您可以直接在我们提供的示例代码中找到