C# SqlDataReader读取多个结果集

来源:互联网 发布:化工仿真软件csts 编辑:程序博客网 时间:2024/05/22 00:29

一次执行多个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();        }



0 0
原创粉丝点击