[ADO.NET] 命令对象 (Command)

[ADO.NET] 命令对象 (Command)
若要执行某个动作查询,可先建立Command对象,并将他的Connection属性设定为状态已经Open(或指定后再使用Open方法)
有三种方法可以执行Command命令的查询:1. ExecuteNonQuery() 2. ExecuteReader() 3. ExecuteScalar() ...


若要执行某个动作查询,可先建立Command对象,并将他的Connection属性设定为状态已经Open(或指定后再使用Open方法)

有三种方法可以执行Command命令的查询:

1. ExecuteNonQuery:用来执行不返回结果集的命令,他会返回一个整数值,整数值即代表受到这个命令所执行的列数。一般Insert、Delete、Update都是使用这个命令查询方法。

2. ExecuteReader:用来产生DataReader对象。除了这个方式之外,没有其他方法可以获得DataReader对象喔!

3. ExecuteScalar:用来返回结果集里面的第一笔的数据,忽略其他行列。适合用在返回聚合值或只会撷取单一数据的时候。取得数据后再转为合宜的数据型态即可。

一. ExecuteNonQuery:

删除Defect数据库中的DefectReport数据表中SN字段的值为123的数据列。

   1: OleDbConnection^ conn=gcnew OleDbConnection();
   2: conn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:defect.mdb";
   3:  
   4: conn->Open();
   5: OleDbCommand^ cmd=conn->CreateCommand();
   6:  
   7: cmd->CommandText="DELETE FROM DEFECTREPORT WHERE [SN]=123";
   8: cmd->ExecuteNonQuery();
   9:  
  10: conn->Close();


二. ExecuteReader:

   1: // conn的定义同上个Code Snippet
   2: conn->Open();
   3:  
   4: OleDbCommand^ cmd=conn->CreateCommand();  
   5: cmd->CommandText="SELECT * FROM DEFECTREPORT";    
   6:  
   7: //设定选取DefectReport中所有的数据  
   8: OleDbDataReader^ reader=cmd->ExecuteReader();  
   9:  
  10: while(reader->read()) 
  11: {   
  12: //do something  
  13: }
  14: //若未关闭时,再想开启另个DataReader对象会导致错误   
  15: reader->Close();
  16: conn->Close();


三. ExecuteScalar:

返回聚合值:

   1: // conn定义同上
   2: conn->Open();
   3: OleDbCommand^ cmd=conn->CreateCommand();
   4: cmd->CommandText="SELECT COUNT(*) FROM DEFECTREPORT"; 
   5:  
   6: int count=0;  
   7: // count会得到DefectReport数据表的数据列数量   
   8: count=cmd->ExecuteScalar();
   9: conn->Close();


以上。

就可以依照想取得的需求,决定要用哪个查询方法啰!

没试过,别说你不行!该努力就去努力,别过了再说后悔。

〈请多指教,新手上路〉

原文:大专栏  [ADO.NET] 命令对象 (Command)


猜你喜欢

转载自www.cnblogs.com/petewell/p/11489687.html