Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published in(发表于) 2014/7/9 1:35:24
ADO.NET链接数据库DataReader对象应用实例

ADO.NET链接数据库DataReader对象应用实例

DataReader对象

DataReader对象是一个简单的数据集,用于从数据源中检索只读数据集,常用于检索大量数据。DataReader对象只允许以只读、从上而下不可逆的方式查看其中所存储的数据,提供一个非常有效率的数据查看模式,同时DataReader对象还是一种非常节省资源的数据对象。

注意:每次打开一个新对象,必须关闭前一个DataReader对象,因为它是以独占式与数据库交互。否则,会接收到其产生的异常。

DataReader对象可通过Command对象的ExecuteReader方法从数据源中检索数据来创建。下面介绍该对象的常用属性和方法。

DataReader对象常用属性及说明如表1所示。



表1 DataReader对象常用属性及说明

(1)FieldCount属性。获取当前行中的列数。

语法:

public override int FieldCount { get; }

属性值:如果未放在有效的记录集中,则为0;否则为当前行中的列数。默认值为-1。

示例

获取DataReader对象中有几行数据,程序代码如下:

Int Num=Datareader.FieldCount;

(2)RecordsAffected属性。获取执行Transact-SQL语句所更改、插入或删除的行数。

语法:

public override int RecordsAffected { get; }

属性值:已更改、插入或删除的行数;如果没有任何行受到影响或语句失败,则为0,直到读取了所有行并关闭SqlDataReader对象时,才会设置RecordsAffected属性。该属性的值是累积值。例如,如果以批处理模式插入3个记录,则RecordsAffected属性的值将为3。

DataReader对象常用方法及说明如表2所示。



表2 DataReader对象常用方法及说明

示例

SqlDataReader对象的使用

首先声明SqlDataReader类的一个新对象drNew,然后通过调用SqlCommand类的ExecuteReader方法实例化对象drNew,最后将对象drNew内的信息循环的显示给用户。程序代码如下:

private void DataReaderExp()

{

SqlConnection conn = new SqlConnection();

conn.ConnectionString = "Data Source=(local);Integrated Security=SSPI;Initial Catalog=db_showHouse";

conn.Open();

qlCommandcmd = new SqlCommand("select User_names from tb_User", conn);

SqlDataReader drNew = cmd.ExecuteReader();

if (drNew.HasRows)

{

while (drNew.Read())

{

MessageBox.Show(drNew[0].ToString());

}

}

drNew.Close();

}

完整程序代码如下:

★ ★★★★Program.cs主程序文件完整程序代码★★★★★

using System;

using System.Collections.Generic;

using System.Windows.Forms;

namespace _1_03

{

static class Program

{

///



/// 应用程序的主入口点。

///


[STAThread]

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Form1());

}

}

}

★ ★★★★Form1.cs窗体代码文件完整程序代码★★★★★

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace _1_03

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

DataReaderExp();

}

private void DataReaderExp()

{

SqlConnection conn = new SqlConnection();

conn.ConnectionString = "Data Source=(local);Integrated Security=SSPI;Initial Catalog=DB_ADONET";

conn.Open();

SqlCommand cmd = new SqlCommand("select tb_PID from New_TClass", conn);

SqlDataReader drNew = cmd.ExecuteReader();

if (drNew.HasRows)

{

while (drNew.Read())

{

MessageBox.Show(drNew[0].ToString());

}

}

drNew.Close();

}

}

}

★ ★★★★Form1.Designer.cs窗体代码文件完整程序代码★★★★★

namespace _1_03

{

partial class Form1

{

///

/// 必需的设计器变量。

///


private System.ComponentModel.IContainer components = null;


If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759