1、读取数据:DataReader对象
在使用Command对象执行完SQL命令后,若需要从返回的结果集中读取数据,可以使用DataReader对象。
(1)DataReader对象详述
DataReader是数据读取器对象,提供只读向前的游标,如果应用程序需要每次从数据库中取出最新的数据,或者只是需要快速读取数据,并不需要修改数据,那么就可以使用DataReader对象进行读取。对于不同的数据库连接,有不同的DataReader类型,具体如下:
在System.Data.SqlClient命名空间下时,可以调用SqlDataReader类。
在System.Data.OleDb命名空间下时,可以调用OleDbDataReader类。
在System.Data.Odbc命名空间下时,可以调用OdbcDataReade类。
在System.Data.Oracle命名空间下,可以调用OracleDataReader类。
在使用DataReader对象读取数据的时候,可以调用Command对象的ExecuteReader方法,根据SQL语句的结果创建一个DataReader对象。
示例程序:
conn = new SqlConnection("server= ;database= ;uid= ;pwd= ");
conn.Open();//打开数据库
SqlCommand sqlCmd = new SqlCommand();//创建数据库command
sqlCmd.Connection = conn;//创建连接
sqlCmd.CommandText = " from tb_command";//设置SQL语句
sqlCmd.CommandType = CommandType.Text;//设置其type格式
SqlDataReader sdr = sqlCmd.ExecuteReader();//注意利用该方法进行datareader的创建
//若要创建SqlDataReader,必须调用SqlCommand对象的ExecuteReader方法。
(2)判断查询结果中是否有值
可以通过SqlDataReader对象的HasRows属性获取一个值,该值指示SqlDataReader是否包含一行或者多行,即判断检查结果中是否有值。
public override bool HasRows{
get;}
//如果sqlDataReader包含一行或者多行,则属性值为true,否则为false。
示例程序:
private void button1_Click(object sender, EventArgs e)
{
try
{
SqlConnection sqlConn = new SqlConnection("server= ;database= ;uid= ;pwd= ");
sqlConn.Open();
SqlCommand sqlCmd = new SqlCommand("select*from " + textBox1.Text.Trim(), sqlConn);
SqlDataReader sdr = sqlCmd.ExecuteReader();
sdr.Read();
if (sdr.HasRows)
{
MessageBox.Show("表中有值");
}
else
{
MessageBox.Show("表中无值");
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
(3)读取数据
如果要读取数据表中的数据