using Dm; using Kdbndp; using Microsoft.Data.Sqlite; using MySqlConnector; using Npgsql; using Oracle.ManagedDataAccess.Client; using System; using System.Collections; using System.Collections.Generic; using System.Data; using Microsoft.Data.SqlClient; using System.Linq; using System.Threading.Tasks; using System.Data.OscarClient; using System.Data.OleDb; namespace SqlSugar { /// /// 数据填充器 /// public class SqlDataAdapter : IDataAdapter { private SqlCommand command; private string sql; private SqlConnection _sqlConnection; /// /// SqlDataAdapter /// /// public SqlDataAdapter(SqlCommand command) { this.command = command; } public SqlDataAdapter() { } /// /// SqlDataAdapter /// /// /// public SqlDataAdapter(string sql, SqlConnection _sqlConnection) { this.sql = sql; this._sqlConnection = _sqlConnection; } /// /// SelectCommand /// public SqlCommand SelectCommand { get { if (this.command == null) { this.command = new SqlCommand(this.sql, this._sqlConnection); } return this.command; } set { this.command = value; } } /// /// Fill /// /// public void Fill(DataTable dt) { if (dt == null) { dt = new DataTable(); } var columns = dt.Columns; var rows = dt.Rows; using (SqlDataReader dr = command.ExecuteReader()) { for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); if (!columns.Contains(name)) columns.Add(new DataColumn(name, dr.GetFieldType(i))); else { columns.Add(new DataColumn(name + i, dr.GetFieldType(i))); } } while (dr.Read()) { DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { daRow[columns[i].ColumnName] = dr.GetValue(i); } dt.Rows.Add(daRow); } } dt.AcceptChanges(); } /// /// Fill /// /// public void Fill(DataSet ds) { if (ds == null) { ds = new DataSet(); } using (SqlDataReader dr = command.ExecuteReader()) { do { var dt = new DataTable(); var columns = dt.Columns; var rows = dt.Rows; for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); if (!columns.Contains(name)) columns.Add(new DataColumn(name, dr.GetFieldType(i))); else { columns.Add(new DataColumn(name+i, dr.GetFieldType(i))); } } while (dr.Read()) { DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { daRow[columns[i].ColumnName] = dr.GetValue(i); } dt.Rows.Add(daRow); } dt.AcceptChanges(); ds.Tables.Add(dt); } while (dr.NextResult()); } } } /// /// 数据填充器 /// public class MySqlDataAdapter : IDataAdapter { private MySqlCommand command; private string sql; private MySqlConnection _sqlConnection; /// /// SqlDataAdapter /// /// public MySqlDataAdapter(MySqlCommand command) { this.command = command; } public MySqlDataAdapter() { } /// /// SqlDataAdapter /// /// /// public MySqlDataAdapter(string sql, MySqlConnection _sqlConnection) { this.sql = sql; this._sqlConnection = _sqlConnection; } /// /// SelectCommand /// public MySqlCommand SelectCommand { get { if (this.command == null) { this.command = new MySqlCommand(this.sql, this._sqlConnection); } return this.command; } set { this.command = value; } } /// /// Fill /// /// public void Fill(DataTable dt) { if (dt == null) { dt = new DataTable(); } var columns = dt.Columns; var rows = dt.Rows; using (MySqlDataReader dr = command.ExecuteReader()) { for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); if (!columns.Contains(name)) columns.Add(new DataColumn(name, dr.GetFieldType(i))); else { columns.Add(new DataColumn(name + i, dr.GetFieldType(i))); } } while (dr.Read()) { DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { daRow[columns[i].ColumnName] = dr.GetValue(i); } dt.Rows.Add(daRow); } } dt.AcceptChanges(); } /// /// Fill /// /// public void Fill(DataSet ds) { if (ds == null) { ds = new DataSet(); } using (MySqlDataReader dr = command.ExecuteReader()) { do { var dt = new DataTable(); var columns = dt.Columns; var rows = dt.Rows; for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); if (dr.GetFieldType(i).Name == "MySqlDateTime") { if (!columns.Contains(name)) columns.Add(new DataColumn(name,UtilConstants.DateType)); else { columns.Add(new DataColumn(name + i, UtilConstants.DateType)); } } else { if (!columns.Contains(name)) columns.Add(new DataColumn(name, dr.GetFieldType(i))); else { columns.Add(new DataColumn(name + i, dr.GetFieldType(i))); } } } while (dr.Read()) { DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { daRow[columns[i].ColumnName] = dr.GetValue(i); } dt.Rows.Add(daRow); } dt.AcceptChanges(); ds.Tables.Add(dt); } while (dr.NextResult()); } } } /// /// 数据填充器 /// public class SqliteDataAdapter : IDataAdapter { private SqliteCommand command; private string sql; private SqliteConnection _sqlConnection; /// /// SqlDataAdapter /// /// public SqliteDataAdapter(SqliteCommand command) { this.command = command; } public SqliteDataAdapter() { } /// /// SqlDataAdapter /// /// /// public SqliteDataAdapter(string sql, SqliteConnection _sqlConnection) { this.sql = sql; this._sqlConnection = _sqlConnection; } /// /// SelectCommand /// public SqliteCommand SelectCommand { get { if (this.command == null) { this.command = new SqliteCommand(this.sql, this._sqlConnection); } return this.command; } set { this.command = value; } } /// /// Fill /// /// public void Fill(DataTable dt) { if (dt == null) { dt = new DataTable(); } var columns = dt.Columns; var rows = dt.Rows; using (SqliteDataReader dr = command.ExecuteReader()) { for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); var type = dr.GetFieldType(i); if (dr.GetDataTypeName(i).EqualCase("datetime")) { type = UtilConstants.DateType; } if (!columns.Contains(name)) columns.Add(new DataColumn(name, type)); else { columns.Add(new DataColumn(name + i, type)); } } while (dr.Read()) { DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { daRow[columns[i].ColumnName] = dr.GetValue(i); } dt.Rows.Add(daRow); } } dt.AcceptChanges(); } /// /// Fill /// /// public void Fill(DataSet ds) { if (ds == null) { ds = new DataSet(); } using (SqliteDataReader dr = command.ExecuteReader()) { do { var dt = new DataTable(); var columns = dt.Columns; var rows = dt.Rows; for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); var type = dr.GetFieldType(i); if (dr.GetDataTypeName(i).EqualCase("datetime")) { type = UtilConstants.DateType; } if (!columns.Contains(name)) columns.Add(new DataColumn(name, type)); else { columns.Add(new DataColumn(name + i, type)); } } while (dr.Read()) { DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { daRow[columns[i].ColumnName] = dr.GetValue(i); } dt.Rows.Add(daRow); } dt.AcceptChanges(); ds.Tables.Add(dt); } while (dr.NextResult()); } } } /// /// 数据填充器 /// public class MyOracleDataAdapter : IDataAdapter { private OracleCommand command; private string sql; private OracleConnection _sqlConnection; /// /// SqlDataAdapter /// /// public MyOracleDataAdapter(OracleCommand command) { this.command = command; } public MyOracleDataAdapter() { } /// /// SqlDataAdapter /// /// /// public MyOracleDataAdapter(string sql, OracleConnection _sqlConnection) { this.sql = sql; this._sqlConnection = _sqlConnection; } /// /// SelectCommand /// public OracleCommand SelectCommand { get { if (this.command == null) { this.command = new OracleCommand(this.sql, this._sqlConnection); } return this.command; } set { this.command = value; } } /// /// Fill /// /// public void Fill(DataTable dt) { if (dt == null) { dt = new DataTable(); } var columns = dt.Columns; var rows = dt.Rows; using (OracleDataReader dr = command.ExecuteReader()) { for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); if (!columns.Contains(name)) columns.Add(new DataColumn(name, dr.GetFieldType(i))); else { columns.Add(new DataColumn(name + i, dr.GetFieldType(i))); } } while (dr.Read()) { DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { daRow[columns[i].ColumnName] = dr.GetValue(i); } dt.Rows.Add(daRow); } } dt.AcceptChanges(); } /// /// Fill /// /// public void Fill(DataSet ds) { if (ds == null) { ds = new DataSet(); } using (OracleDataReader dr = command.ExecuteReader()) { do { var dt = new DataTable(); var columns = dt.Columns; var rows = dt.Rows; for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); if (!columns.Contains(name)) columns.Add(new DataColumn(name, dr.GetFieldType(i))); else { columns.Add(new DataColumn(name + i, dr.GetFieldType(i))); } } while (dr.Read()) { DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { daRow[columns[i].ColumnName] = dr.GetValue(i); } dt.Rows.Add(daRow); } dt.AcceptChanges(); ds.Tables.Add(dt); } while (dr.NextResult()); } } } /// /// 数据填充器 /// public class NpgsqlDataAdapter : IDataAdapter { private NpgsqlCommand command; private string sql; private NpgsqlConnection _sqlConnection; /// /// SqlDataAdapter /// /// public NpgsqlDataAdapter(NpgsqlCommand command) { this.command = command; } public NpgsqlDataAdapter() { } /// /// SqlDataAdapter /// /// /// public NpgsqlDataAdapter(string sql, NpgsqlConnection _sqlConnection) { this.sql = sql; this._sqlConnection = _sqlConnection; } /// /// SelectCommand /// public NpgsqlCommand SelectCommand { get { if (this.command == null) { this.command = new NpgsqlCommand(this.sql, this._sqlConnection); } return this.command; } set { this.command = value; } } /// /// Fill /// /// public void Fill(DataTable dt) { if (dt == null) { dt = new DataTable(); } var columns = dt.Columns; var rows = dt.Rows; using (NpgsqlDataReader dr = command.ExecuteReader()) { for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); if (!columns.Contains(name)) columns.Add(new DataColumn(name, dr.GetFieldType(i))); else { columns.Add(new DataColumn(name + i, dr.GetFieldType(i))); } } while (dr.Read()) { DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { daRow[columns[i].ColumnName] = dr.GetValue(i); } dt.Rows.Add(daRow); } } dt.AcceptChanges(); } /// /// Fill /// /// public void Fill(DataSet ds) { if (ds == null) { ds = new DataSet(); } using (NpgsqlDataReader dr = command.ExecuteReader()) { do { var dt = new DataTable(); var columns = dt.Columns; var rows = dt.Rows; for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); if (!columns.Contains(name)) columns.Add(new DataColumn(name, dr.GetFieldType(i))); else { columns.Add(new DataColumn(name + i, dr.GetFieldType(i))); } } while (dr.Read()) { DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { daRow[columns[i].ColumnName] = dr.GetValue(i); } dt.Rows.Add(daRow); } dt.AcceptChanges(); ds.Tables.Add(dt); } while (dr.NextResult()); } } } /// /// 数据填充器 /// public class MyDmDataAdapter : IDataAdapter { private DmCommand command; private string sql; private DmConnection _sqlConnection; /// /// SqlDataAdapter /// /// public MyDmDataAdapter(DmCommand command) { this.command = command; } public MyDmDataAdapter() { } /// /// SqlDataAdapter /// /// /// public MyDmDataAdapter(string sql, DmConnection _sqlConnection) { this.sql = sql; this._sqlConnection = _sqlConnection; } /// /// SelectCommand /// public DmCommand SelectCommand { get { if (this.command == null) { this.command = new DmCommand(this.sql, this._sqlConnection); } return this.command; } set { this.command = value; } } /// /// Fill /// /// public void Fill(DataTable dt) { if (dt == null) { dt = new DataTable(); } var columns = dt.Columns; var rows = dt.Rows; using (var dr = command.ExecuteReader()) { for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); if (!columns.Contains(name)) columns.Add(new DataColumn(name, dr.GetFieldType(i))); else { columns.Add(new DataColumn(name + i, dr.GetFieldType(i))); } } while (dr.Read()) { DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { daRow[columns[i].ColumnName] = dr.GetValue(i); } dt.Rows.Add(daRow); } } dt.AcceptChanges(); } /// /// Fill /// /// public void Fill(DataSet ds) { if (ds == null) { ds = new DataSet(); } using (var dr = command.ExecuteReader()) { do { var dt = new DataTable(); var columns = dt.Columns; var rows = dt.Rows; for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); if (!columns.Contains(name)) columns.Add(new DataColumn(name, dr.GetFieldType(i))); else { columns.Add(new DataColumn(name + i, dr.GetFieldType(i))); } } while (dr.Read()) { DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { daRow[columns[i].ColumnName] = dr.GetValue(i); } dt.Rows.Add(daRow); } dt.AcceptChanges(); ds.Tables.Add(dt); } while (dr.NextResult()); } } } /// /// 数据填充器 /// public class KdbndpDataAdapter : IDataAdapter { private KdbndpCommand command; private string sql; private KdbndpConnection _sqlConnection; /// /// SqlDataAdapter /// /// public KdbndpDataAdapter(KdbndpCommand command) { this.command = command; } public KdbndpDataAdapter() { } /// /// SqlDataAdapter /// /// /// public KdbndpDataAdapter(string sql, KdbndpConnection _sqlConnection) { this.sql = sql; this._sqlConnection = _sqlConnection; } /// /// SelectCommand /// public KdbndpCommand SelectCommand { get { if (this.command == null) { this.command = new KdbndpCommand(this.sql, this._sqlConnection); } return this.command; } set { this.command = value; } } /// /// Fill /// /// public void Fill(DataTable dt) { if (dt == null) { dt = new DataTable(); } var columns = dt.Columns; var rows = dt.Rows; using (KdbndpDataReader dr = command.ExecuteReader()) { for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); if (!columns.Contains(name)) columns.Add(new DataColumn(name, dr.GetFieldType(i))); else { columns.Add(new DataColumn(name + i, dr.GetFieldType(i))); } } while (dr.Read()) { DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { daRow[columns[i].ColumnName] = dr.GetValue(i); } dt.Rows.Add(daRow); } } dt.AcceptChanges(); } /// /// Fill /// /// public void Fill(DataSet ds) { if (ds == null) { ds = new DataSet(); } using (KdbndpDataReader dr = command.ExecuteReader()) { do { var dt = new DataTable(); var columns = dt.Columns; var rows = dt.Rows; for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); if (!columns.Contains(name)) columns.Add(new DataColumn(name, dr.GetFieldType(i))); else { columns.Add(new DataColumn(name + i, dr.GetFieldType(i))); } } while (dr.Read()) { DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { daRow[columns[i].ColumnName] = dr.GetValue(i); } dt.Rows.Add(daRow); } dt.AcceptChanges(); ds.Tables.Add(dt); } while (dr.NextResult()); } } } /// /// 数据填充器 /// public class OscarDataAdapter : IDataAdapter { private OscarCommand command; private string sql; private OscarConnection _sqlConnection; /// /// SqlDataAdapter /// /// public OscarDataAdapter(OscarCommand command) { this.command = command; } public OscarDataAdapter() { } /// /// SqlDataAdapter /// /// /// public OscarDataAdapter(string sql, OscarConnection _sqlConnection) { this.sql = sql; this._sqlConnection = _sqlConnection; } /// /// SelectCommand /// public OscarCommand SelectCommand { get { if (this.command == null) { this.command = new OscarCommand(this.sql, this._sqlConnection); } return this.command; } set { this.command = value; } } /// /// Fill /// /// public void Fill(DataTable dt) { if (dt == null) { dt = new DataTable(); } var columns = dt.Columns; var rows = dt.Rows; using (OscarDataReader dr = command.ExecuteReader()) { for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); if (!columns.Contains(name)) columns.Add(new DataColumn(name, dr.GetFieldType(i))); else { columns.Add(new DataColumn(name + i, dr.GetFieldType(i))); } } while (dr.Read()) { DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { daRow[columns[i].ColumnName] = dr.GetValue(i); } dt.Rows.Add(daRow); } } dt.AcceptChanges(); } /// /// Fill /// /// public void Fill(DataSet ds) { if (ds == null) { ds = new DataSet(); } using (OscarDataReader dr = command.ExecuteReader()) { do { var dt = new DataTable(); var columns = dt.Columns; var rows = dt.Rows; for (int i = 0; i < dr.FieldCount; i++) { string name = dr.GetName(i).Trim(); if (!columns.Contains(name)) columns.Add(new DataColumn(name, dr.GetFieldType(i))); else { columns.Add(new DataColumn(name + i, dr.GetFieldType(i))); } } while (dr.Read()) { DataRow daRow = dt.NewRow(); for (int i = 0; i < columns.Count; i++) { daRow[columns[i].ColumnName] = dr.GetValue(i); } dt.Rows.Add(daRow); } dt.AcceptChanges(); ds.Tables.Add(dt); } while (dr.NextResult()); } } } }