我最近在为winform编程,觉得ajdyet没有使用过ExecuteReader。 以前很少用户,或者
因为不太好用,所以没用过。 今天在这里写学习记录。 请作为读者参考。
1、根据MSDN,sendsthecommandtexttotheconnectionandbuildsasqldatareader。
(这句话不翻译)
2、实例片段:
[C#]
publicvoidcreatemysqldatareader (stringmyselectquery,SqlConnection myConnection )。
{
字符串SQL; //sql语句
sqlcommand my command=new sqlcommand (SQL,myConnection;
myConnection.Open (;
SqlDataReader myReader;
my reader=my command.executereader (;
特里
{
while (我的读取者. read ) )
{
控制台. writeline (my reader.getstring (0) );
}
}
金融
{
myReader.Close (;
myConnection.Close (;
}
}
3、说说那个的使用方法吧:
:
用法: ExecuteReader方法旨在尽可能快地查询数据库以获得结果。 ExecuteReader返回DataReader对象。 如果在SqlCommand对象上调用,则返回SqlDataReader。 如果在OleDbCommand对象上调用,则返回的是OleDbDataReader。 可以调用DataReader的方法和属性来重复处理结果集。 这是一种快速枚举数据库查询结果的机制,是只读的,也是输入的。 对于对SqlDataReader.Read的每个调用,结果集中都会返回一行。
:
这是我平时使用时的认识。 也就是说,在进行数据操作时,如果没有可以操作的数据,则只能使用名为ExecuteReader (的CMD )。 executeNoeQuery ) )和Executescalar ) )在没有数据时使用,会出现“似乎未实例化”错误,因此在确定是否存在数据时,请使用Executescalar
:
DataReader还具有GetValue方法,用于获取字段的值。 GetValue返回常见的Object,但有无数返回强类型的Get方法(如GetInt32和GetDecimal )作为补充(参见MSDN2005 )。 因为GetDecimal只接受整数索引,所以必须调用GetOrdinal。 GetOrdinal与GetName相反,执行——并将字段名转换为数字索引。
注意: DataReader必须处理关闭方法。
using System.Data.SqlClient;
.
sqlconnection conn=new sqlconnection (@ ' server=ws7/leosql; database=AdventureWorks; uid=sa; pwd=lixiang@ ';
特里
{
conn.Open (;
sqlcommand cmd=new sqlcommand (选择* fromtitleswhereadvance!=0',conn;
sqldatareader reader=cmd.executereader (;
intindex=reader.get ordinal (高级);
wile(reader.read ) )
控制台. writeline (0: c )、reader.getdecimal(index );
==============================
-控制台. writeline (reader.getname (0);
==============================
' ' reader.Close (; ''
}
catch(SqlException ex )
{
控制台. writeline (ex.message );
}
金融
{
=====================================
可以将DataReader配置为能够关闭真正基础的连接
- reader=cmd.executereader (command behavior.close connection );
=====================================
conn.Close (;
}
:
现在让我强调一下。 本节介绍ExecuteReader读取) )方法。 这是读取表中的记录,即执行读取,每次调用时返回一行结果集。
此行的结果集通常用于确定是否有效,如果有,请执行以下操作: 一句话,一般用来判断返回的结果。
结束后,请告诉我阳光海豚