EF运用成ADO.NET操作返回DataSet或者DataTable

     #region 获取DataSet返回结构集
        public DataSet GetDataSet(string sql, params SqlParameter[] para)
        {
            for (int i = 0; i < para.Length; i++)
            {
                SqlParameter p = para[i];
                sql += " " + p.ParameterName + ",";
            }
            sql = sql.Substring(0, sql.Length - 1);

            DataSet sd = new DataSet();
            using (var db = new BaseContext())
            {
                SqlConnection conn = db.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;
        }
        #endregion

        #region 获取Table返回DataTable
        public DataTable GetDataTable(string sql, params SqlParameter[] para)
        {
            DataTable dt=new DataTable();
            for (int i = 0; i < para.Length; i++)
            {
                SqlParameter p = para[i];
                sql += " " + p.ParameterName + ",";
            }
            sql = sql.Substring(0, sql.Length - 1);

            using (var db = new BaseContext())
            {
                SqlConnection conn = db.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;
                }
            }
        }
        #endregion
时间: 2024-12-17 22:11:29

EF运用成ADO.NET操作返回DataSet或者DataTable的相关文章

Ado.Net,关于DataSet和DataTable

DataSet和DataTable的 区别与联系 1.简要说明二者关系 在我们编写代码的时候从数据库里取出数据,填充到dataset里,再根据表的名字,实例化到 DataTable 中. ●注意如下 Ado.Net 关系: Connection_____Command____DataAdapter____Dataset  _____Datareader ● DataSet 是放在内存中的,对DataSet中数据的修改并不直接反应到数据库,要通过 DataAdapter 的 Update 方法更新

浅谈ADO.NET中的对象——Connection、Command、DataReader、DataAdapter、DataSet、DataTable

可能是当初没有好好总结的缘故,学习.NET以来,对ADO.NET中的对象一直有些模糊,今天重新回顾了一下,通过查资料,总结,结合自己的观点整理一下ADO.NET中Connection.Command.DataReader.DataAdapter. DataSet.DataTable这几个对象的相关知识,希望对初学者能起到一个全局把控的作用,希望大牛能留下宝贵的指导意见. 以下的例子仅以连接 SQL Server数据库为例,所以分别以SqlConnection.SqlCommand.SqlData

【ADO.NET基础知识】SqlConnection、command、DataSet 、DataTable、dataAdapter

1.使用Connection连接数据库的步骤: (1).添加命名空间 System.Data.SqlClient(注意:初学者经常会忘记) (2)定义连接字符串.连接SQL Server 数据库时: server=服务器名;database=数据库名;uid=用户名;pwd=密码;例如:要连接本机上的StudentManagement数据库,用户名为sa,密码为111 string connString="server=.;database=StudentManagement;uid=sa;pw

ADO.NET之填充DataSet类

主要使用数据适配器SqlDataAdapter类进行填充DataSet类 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; using System.Data; namespace ConsoleApplication1 { class Progr

ADO.NET之使用DataSet类更新数据库

1.首先从数据库获得数据填充到DataSet类,该类中的表和数据库中的表相互映射. 2.对DataSet类中的表进行修改(插入,更新,删除等) 3.同步到数据库中:使用SqlDataAdapter实例名.Update(DataSet实例名,DataSet中和数据库中表相映射的表名),它必须和SqlCommandBuilder必须组合使用 SqlCommandBuilder:自动生成单表命令,用于将对 DataSet 所做的更改与关联的 SQL Server 数据库的更改相协调,意思是对数据库执行

windows 2008创建群集“xxx”时出错。由于超时时间已过,该操作返回

操作系统环境:windows 2008 Enterprise R2 SP1 验证群集配置时未发现任何的错误.但在创建故障转移群集时,出现超时错误的现象:"创建群集时出错.创建群集"xxx"时出错.由于超时时间已过,该操作返回.". 尝试单独选择一台服务器群集创建成功,但添加第二节点时,一直卡在"正在等待节点xxx 成为群集的完成起作用成员的通知",直到超时出错退出"由于超时时间已过,该操作返回." 排错过程: 使用单一节点创建

IBatisNet:让insert操作返回新增记录的主键值

项目引用ibatis包: IBatisNet.Common.dll --文件版本1.6.2.0 IBatisNet.DataAccess.dll IBatisNet.DataMapper.dll 项目目录结构: 项目中使用ibatis做数据访问层已经有好长时间了.开发小组成员反映ibatis的insert操作返回的结果是null,这一点很是不爽. 其实,大家都是希望能够把新增记录的主键值返回出来. 上上周,大家有反编译ibatis的包,查看其实现原理,后来,又尝试其他方法,都没能给实现这个功能.

Result (自定义操作返回结果)

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Wdj { /// <summary> /// 操作返回结果,使用时建议判断State状态 /// </summary> public class Result : ResultHandler<int> { /// <summary> /// 初始化操作返回结果 ///

EF性能优化-有人说EF性能低,我想说:EF确实不如ADO.NET

十年河东,十年河西,莫欺少年穷. EF就如同那个少年,ADO.NET则是一位壮年.毕竟ADO.NET出生在EF之前,而EF所走的路属于模仿ADO.NET. 也就是说:你所写的LINQ查询,最后还是要转化为ADO.NET的SQL语句,转化过程中无形降低了EF的执行效率. 但是,使用EF的一个好处就是系统便于维护,减少了系统开发时间,降低了生成成本. OK,上述只是昨个简单的对比,那么在实际编码过程中,我们应当怎样提升EF的性能呢? 1.EF使用SqlQuery 上述已经说的很明白了,EF效率低于A