ASP.NET用一个程序详细研究DataReader
//***********************************************************
//*名称:一个程序详细研究datareader,同时显示command用法
//*功能:演示datareader的各项操作。
//*说明:如果需要文字说明请查看我的blog里面关于ado.net的文章
//*作者:雪冬寒
//*bolg:http://blog.csdn.net/bineon
//***********************************************************
using system;
using system.data;
using system.data.sqlclient;
using system.data.oledb;(文章来源 www.iocblog.net)
class sqlreader
{
const string connstr = "data source=bineon;user id=sa;password=87345587;initial catalog=contract";
sqlconnection conn;
public sqlreader()
{
conn = new sqlconnection(connstr);
}
//**************************************
//*演示datareader的两种取值方法
//**************************************
public void basicreader()
{
string sql="select * from friend";
sqlcommand cmd;
cmd = conn.createcommand();
cmd.commandtext = sql;
conn.open();
sqldatareader reader = cmd.executereader();
while(reader.read())
{
console.writeline("no:{0} name:{1} phonenum:{2}, address:{3}",reader.getint32(0).tostring(),reader.getstring(1),reader[2].tostring(),reader["faddress"].tostring());
}
showsplit();
reader.close();
conn.close();
}
//**************************************
//*演示带参数查询的操作,使用sqlcilent
//**************************************
public void hasparamreader()
{
sqlcommand cmd;
cmd = conn.createcommand();
string sql = "select fname,fphone,faddress from friend where fid > @fid";
cmd.commandtext = sql;
sqlparameter param = new sqlparameter("@fid",sqldbtype.int,4);
param.value = 15;
cmd.parameters.add(param);
conn.open();
//当关闭reader的时候同时关闭数据库连接
sqldatareader reader = cmd.executereader(commandbehavior.closeconnection);
while(reader.read())
{
console.writeline("name:{0} phonenum:{1} address:{2}",reader.getstring(0),reader.getstring(1),reader.getstring(2));
}
showsplit();
//无需关闭conn,系统会自动调用这个方法来关闭conn的。
reader.close();
}
//**************************************
//*演示带参数查询的操作,使用oledb
//**************************************
public void hasoledbparamreader()
{
sqlcommand cmd;
cmd = conn.createcommand();
string sql = "select fname,fphone,faddress from friend where fid > ?";
string oledbconnstr = "provider=sqloledb;" + connstr;
oledbconnection oleconn = new oledbconnection(oledbconnstr);
oledbcommand olecmd = new oledbcommand(sql,oleconn);
olecmd.parameters.add("nothing",15);
oleconn.open();
oledbdatareader olereader = olecmd.executereader();
while(olereader.read())
{
console.writeline("name:{0} phonenum:{1} address:{2}",olereader.getstring(0),olereader.getstring(1),olereader.getstring(2));
}
showsplit();
olereader.close();
oleconn.close();
}
//**************************************
//*演示存储过程的输出参数
//**************************************
public void outparamshow()
{
sqlcommand cmd;
cmd = conn.createcommand();
cmd.commandtext = "getinfo";
cmd.commandtype = commandtype.storedprocedure;
sqlparameter param = cmd.parameters.add("@fid",16);
param = cmd.parameters.add("@fname",sqldbtype.varchar,8);
param.direction = parameterdirection.output;
param = cmd.parameters.add("@fphone",sqldbtype.varchar,8);
param.direction = parameterdirection.output;
conn.open();
cmd.executenonquery();
string fname = cmd.parameters["@fname"].value.tostring();
string fphone = cmd.parameters["@fphone"].value.tostring();
console.writeline(fname + " " + fphone);
conn.close();
showsplit();
}
//**************************************
//*演示读取多个无关记录集
//**************************************
public void multiresult()
{
sqlcommand cmd;
cmd = conn.createcommand();
string sqla = "select fname from friend";
string sqlb = "select fphone from friend";
cmd.commandtext = sqla + ";" + sqlb;
conn.open();
sqldatareader reader= cmd.executereader();
int i = 1;
do
{
console.writeline("第" + i.tostring() + "个记录集内容如下: ");
while(reader.read())
{
console.writeline(reader[0].tostring() + " ");
}
i++;
}while(reader.nextresult()); //nextresult()移动到下一个记录集
reader.close();
conn.close();
showsplit();
}
Tag: DataReader
文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。