C#データベースの最初の行の最初の列の値を取得


アプリケーション要件
日常のプロジェクト開発では、あるフィールドの値を統計したり、総数を計算したりする需要決定によく遭遇します.この場合、SQL文を直接実行し、値情報を取得して使用する方法をクラスライブラリでサポートする必要があります.こちらはEFの方式で书いていません.EFの取得は比较的に便利です.今回はSQL文を直接呼び出して実行结果を取得する方式を使っています.
コードの例

        /// 
        ///   SQL        
        /// 
        ///      SQL    :Select Count(1) from User 
        ///           
		public string GetOnlyValueBySql(string sql)
        {
            string result = "";
            //                            
            SqlConnection conn = dbcontext.Database.Connection as SqlConnection;
            conn.Open();
            SqlCommand cmd = conn.CreateCommand();
            //     SQL  
            cmd.CommandText = sql;
            //ExecuteScalar:         SQL  。
            result = cmd.ExecuteScalar().ToString();
            conn.Dispose();
            conn.Close();
            return result;
        }


		/// 
        ///   DataSet     
        /// 
        ///    SQL  
        ///        
        ///   DataSet
        public DataSet GetDataSet(string sql, params SqlParameter[] para)
        {
            DataSet sd = new DataSet();
            SqlConnection conn = dbcontext.Database.Connection as SqlConnection;
            using (SqlCommand cmd = new SqlCommand(sql , conn))
            {
                cmd.Parameters.AddRange(para);
                SqlDataAdapter sda = new SqlDataAdapter(cmd);
                sda.Fill(sd);
            }
            return sd;
        }


        /// 
        ///   DataTable   
        /// 
        ///    SQL  
        ///        
        ///   DataTable
        public DataTable GetDataTable(string sql, params SqlParameter[] para)
        {
            DataTable dt = new DataTable(); 
            SqlConnection conn = dbcontext.Database.Connection as SqlConnection;
            using (SqlCommand cmd = new SqlCommand(sql, conn))
            {
                cmd.Parameters.AddRange(para);
                SqlDataAdapter sda = new SqlDataAdapter(cmd);
                sda.Fill(dt);
                return dt;
            }
        }
 
        

語尾
コードの例の部分でうっかりいくつかの方法を追加しましたこれは主に自分が1つの記録をしたことを忘れないようにします皆さんどうぞお許しくださいちなみに使用方法を振り返って最後に使用シーンを話しましょう.この場合、以前よく使っていたのはWebFromのモデルで、今までのMVC、甚だしきに至っては.Net Coreも実際には使えますが、応用シーンは統計的にしか引用できないかもしれませんので、コメントをお待ちしています.