c#中executereader執(zhí)行查詢示例分享
ExecuteReader執(zhí)行查詢實(shí)例
ExecuteReader方法存在的目的只有一個(gè):盡可能快地對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢并得到結(jié)果。ExecuteReader 返回一個(gè)DataReader對(duì)象:如果在SqlCommand對(duì)象中調(diào)用,則返回SqlDataReader;如果在OleDbCommand對(duì)象中調(diào)用,返回的是OleDbDataReader??梢哉{(diào)用DataReader的方法和屬性迭代處理結(jié)果集。它是一個(gè)快速枚舉數(shù)據(jù)庫(kù)查詢結(jié)果的機(jī)制,是只讀、只進(jìn)的。對(duì)SqlDataReader.Read的每次調(diào)用都會(huì)從結(jié)果集中返回一行。
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data.SqlClient;
namespace ExecuteReader執(zhí)行查詢
{
/// <summary>
/// Window1.xaml 的交互邏輯
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=MyTest;User Id=sa;Password=123;"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from T_Student where Age<100";
using (SqlDataReader reader = cmd.ExecuteReader())//ExecuteReader返回的對(duì)象類型是SqlDataReader
{
//Read是bool類型,初始指針指向第一條數(shù)據(jù)之前,每調(diào)用一次reader,指針就下移一條,只要沒(méi)有移到最后一條之后,就返回true。
while (reader.Read())
{
string name = reader.GetString(1);//GetString(1)得到表中第一列的值,用name接收,因?yàn)椴榈氖?,所以就和表中的列數(shù)一樣。
int age = reader.GetInt32(2);
MessageBox.Show(name+","+age);
}
}
}
}
}
private void btnQuery_Click(object sender, RoutedEventArgs e)
{
using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=MyTest;User Id=sa;Password=123;"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
//cmd.CommandText = "select age from T_Student where name='"+ txtName.Text +"'";//字符串拼接查找數(shù)據(jù)庫(kù)。
cmd.CommandText = "select age from T_Student where name=@name or age>@age";//與數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)對(duì)比。
//@參數(shù):不能用來(lái)替換表名,字段名,select之類的關(guān)鍵字等。
cmd.Parameters.Add(new SqlParameter("@name",txtName.Text));
cmd.Parameters.Add(new SqlParameter("@age",Convert.ToInt32(txtAge.Text)));
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
//GetInt32獲得的是int類型
//GetInt64獲得的是long類型(bigint)
int age = reader.GetInt32(0);//GetInt32(0)中的參數(shù)是看cmd.CommandText中的查詢結(jié)果有幾個(gè)。
MessageBox.Show(age.ToString());
}
}
}
}
}
private void btnHobby_Click(object sender, RoutedEventArgs e)
{
using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=MyTest;User Id=sa;Password=123;"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from T_Student where name like '張%'";
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
string hobby = reader.GetString(3);
MessageBox.Show(hobby);
}
}
}
}
}
private void btnQuery1_Click(object sender, RoutedEventArgs e)
{
using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=MyTest;User Id=sa;Password=123;"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select hobbit from T_Student where age>@age or hobbit =@hobbit";
cmd.Parameters.Add(new SqlParameter("@age", txtAge1.Text));
cmd.Parameters.Add(new SqlParameter("@hobbit",txtHobby.Text));
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
string str = reader.GetString(0);
MessageBox.Show(str);
}
}
}
}
}
}
}
- C#使用Process類調(diào)用外部exe程序
- C# IDE VS2005中的Hosting Process (vshost.exe)作用介紹
- C#中ExecuteNonQuery()返回值注意點(diǎn)分析
- C#事務(wù)處理(Execute Transaction)實(shí)例解析
- 解析c#操作excel后關(guān)閉excel.exe的方法
- c#啟動(dòng)EXE文件的方法實(shí)例
- C#數(shù)據(jù)導(dǎo)入/導(dǎo)出Excel文件及winForm導(dǎo)出Execl總結(jié)
- C#實(shí)現(xiàn)合并多個(gè)word文檔的方法
- C#文件合并的方法
- C#程序(含多個(gè)Dll)合并成一個(gè)Exe的簡(jiǎn)單方法
相關(guān)文章
C#中把字符串String轉(zhuǎn)換為整型Int的小例子
這篇文章主要介紹了C#中把字符串String轉(zhuǎn)換為整型Int的小例子,本文使用TryParse方法實(shí)現(xiàn)轉(zhuǎn)換,需要的朋友可以參考下2014-08-08
C#實(shí)現(xiàn)動(dòng)態(tài)圖標(biāo)閃爍顯示的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)動(dòng)態(tài)圖標(biāo)閃爍顯示的功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以了解一下2022-12-12
C#使用DllImport調(diào)用非托管的代碼的方法
C#調(diào)用非托管代碼的方式主要有Com調(diào)用、DllImport方式調(diào)用、加載非托管動(dòng)態(tài)鏈接庫(kù)、直接執(zhí)行機(jī)器碼等方式?,F(xiàn)在介紹一下我自己常用的DllImport方式調(diào)用MSDN中提到的GetShortPathName方法;2013-03-03
C# BinaryReader實(shí)現(xiàn)讀取二進(jìn)制文件
在 C# 以二進(jìn)制形式讀取數(shù)據(jù)時(shí)使用的是 BinaryReader 類。本文介紹了C# BinaryReader實(shí)現(xiàn)讀取二進(jìn)制文件,感興趣的可以了解一下2021-06-06
深入解析C#編程中struct所定義的結(jié)構(gòu)
這篇文章主要介紹了C#編程中struct所定義的結(jié)構(gòu),與C++一樣,C#語(yǔ)言同時(shí)擁有類和結(jié)構(gòu),需要的朋友可以參考下2016-01-01
WPF實(shí)現(xiàn)動(dòng)畫(huà)效果(七)之演示圖板
這篇文章介紹了WPF實(shí)現(xiàn)動(dòng)畫(huà)效果之演示圖板,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06

