/// <summary> /// 从数据库中读取数据并保存在内存中 /// </summary> /// <param name="sql"></param> /// <returns></returns> public DataSet GetDataSet(SqlQuery sql) { if (this._totalOpen) { this.AddTotalSql(sql.Sql); } DataSet ds = new DataSet(); using (DbConnection conn = this.CreateOpenedConnection()) { DbDataAdapter adapter = dbFactory.CreateDataAdapter(conn, sql.Sql); if (sql.Parameters != null) { adapter.SelectCommand.Parameters.AddRange(sql.ToParams(dbFactory)); //自动判断是T-SQL还是存储过程 adapter.SelectCommand.CommandType = procedureRegex.IsMatch(sql.Sql) ? CommandType.Text : CommandType.StoredProcedure; } adapter.Fill(ds); } return(ds); }
/// <summary> /// 返回查询的第一行第一列值 /// </summary> /// <param name="sql"></param> /// <returns></returns> public object ExecuteScalar(SqlQuery sql) { if (this._totalOpen) { this.AddTotalSql(sql.Sql); } object obj; using (DbConnection conn = this.CreateOpenedConnection()) { DbCommand cmd = this.CreateCommand(sql.Sql); cmd.Connection = conn; //自动判断是T-SQL还是存储过程 cmd.CommandType = procedureRegex.IsMatch(sql.Sql) ? CommandType.Text : CommandType.StoredProcedure; if (sql.Parameters != null) { cmd.Parameters.AddRange(sql.ToParams(dbFactory)); } obj = cmd.ExecuteScalar(); } return(obj); }
/// <summary> /// 读取DataReader中的数据 /// </summary> /// <param name="sql"></param> /// <param name="func"></param> public void ExecuteReader(SqlQuery sql, DataReaderFunc func) { if (this._totalOpen) { this.AddTotalSql(sql.Sql); } using (DbConnection conn = this.CreateOpenedConnection()) { DbCommand cmd = this.CreateCommand(sql.Sql); cmd.Connection = conn; //自动判断是T-SQL还是存储过程 cmd.CommandType = procedureRegex.IsMatch(sql.Sql) ? CommandType.Text : CommandType.StoredProcedure; if (sql.Parameters != null) { cmd.Parameters.AddRange(sql.ToParams(dbFactory)); } func(cmd.ExecuteReader()); } }