C# SqlDataReader讀取多個結果集
阿新 • • 發佈:2019-02-05
一次執行多個select,然後返回多個查詢結果的話,要使用多結果集技術:
注意:當SQL語句中出現兩條Select語句,例如:string sql = "select * from Employees;select * from TblClass";
可以用SqlDataReader的NextResult()來接收多個結果集
使用
do
{
}
while(reader.NextResult())
static void Main(string[] args) { string constr = "Data Source=zxtiger;Initial Catalog=itcastcn;Integrated Security=True"; using (SqlConnection con = new SqlConnection(constr)) { string sql = "select * from Employees;select * from TblClass"; using (SqlCommand cmd = new SqlCommand(sql, con)) { con.Open(); using (SqlDataReader reader = cmd.ExecuteReader()) { do { if (reader.HasRows) { while (reader.Read()) { //迴圈列 for (int i = 0; i < reader.FieldCount; i++) { //根據索引,獲取列名 //reader.GetName(i); //獲取當前列的資料型別 string dbType = reader.GetDataTypeName(i); switch (dbType) { case "varchar": case "nvarchar": case "char": case "nchar": Console.Write(reader.GetString(i) + "\t"); break; case "int": Console.Write(reader.GetInt32(i) + "\t"); break; } } Console.WriteLine(); } } } while (reader.NextResult()); //當多個結果集的時候可以呼叫NextResult } } } Console.WriteLine("ok"); Console.ReadKey(); }