遍歷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;
                }
            }
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM