4.遍历DataSet

Posted 狼牙者.net

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.遍历DataSet相关的知识,希望对你有一定的参考价值。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace _05遍历DataSet
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Data.DataTable dt = CommonCode.Sqlhelper.ExecuteDataTable("select Id,Name,paradId from Table_Para");
             //第一种方式:
            foreach (DataRow item in dt.Rows)
            {
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    Console.Write(item[i].ToString() + "\\t");
                }
                Console.WriteLine();
            }
                //第二种方式:
            //for (int i = 0; i < dt.Rows.Count; i++)
            //{
            //    for (int j = 0; j < dt.Columns.Count; j++)
            //    {
            //        //输出第i行的第j列
            //        Console.Write(dt.Rows[i][j] + "\\t");
            //    }
            //    Console.WriteLine();
            //}


            Console.ReadKey();


        }
    }
}
运行效果图:两种效果图一样

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;

namespace CommonCode
{

    public static class Sqlhelper
    {
        private static readonly string ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
        //执行数据库无非就是执行cmd的以下方法
        //1. ExecuteNonQuery 执行一个insert update delete
        public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(ConnectionString))
            {
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddRange(parameters);
                    conn.Open();
                    return cmd.ExecuteNonQuery();
                }
            }
        }
        //2.ExecuteScaler 返回结果集的第一行第一列
        public static object ExecuteScaler(string sql, params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(ConnectionString))
            {
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddRange(parameters);
                    conn.Open();
                    return cmd.ExecuteScalar();
                }
            }
        }

        //3.ExecuteReader 返回一个Reader对象,用于读于多行多列数据
        //在数据库上产生一个结果集,每次Read,从数据库服务器上读取一条数据回来,所以使用Reader读取数据,不能与数据库断开连接.
        public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] parameters)
        {
            SqlConnection conn = new SqlConnection(ConnectionString);
            
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddRange(parameters);
                    conn.Open();
                    try
                    {
                        //在sqlhelper中,由于dr在返回给用户使用,所以注意dr不要使用using(){]
                        SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                            return dr;
                    }
                    catch (Exception ex)
                    {
                        conn.Close();
                        throw ex;  
                    }
          
                }
            }
        //4.执行一个sql语句,并把结果集放入本地的DataTable中.这里数据已
        //经放到本地,断开数据库连接,还是可以访问到数据的.
        public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(ConnectionString))
            {
                using (SqlDataAdapter da = new SqlDataAdapter(sql, conn))
                {
                    da.SelectCommand.Parameters.AddRange(parameters);
                    DataTable dt = new DataTable();
                    //Fill方法其实执行的是da.SelectCommand中的sql语句,这里可以写conn.open也可以不写,如果不写,da会自动连接数据库
                    da.Fill(dt);
                    return dt;
                }
            }
        }
    }
}

 

以上是关于4.遍历DataSet的主要内容,如果未能解决你的问题,请参考以下文章

detectron2报AttributeError: Attribute ‘evaluator_type‘ does not exist in the metadata of dataset(代码片段

怎么遍历dataset取值?

winform dataset怎么遍历方法

为啥这段代码会泄露? (简单的代码片段)

C#遍历DataSet中数据的几种方法总结

如何遍历R中的列表