Beispiel #1
0
        public DbService(string tableName, string connString)
        {//构造函数只生成脚本模板
            //获取连接
            if (!(connString.Contains("database") || connString.Contains("Source=")))
            {
                //throw new NotImplementedInCoreException("必须传入完整的连接串");
                connString = DbUtility.ConnString(connString.TrimString());
                //ConfigurationManager.ConnectionStrings[connString.TrimString()].ConnectionString;
            }
            _connString = connString;

            _table = new Table(tableName, connString);
            //所有列
            var insertValueList = _table.ColumnNames.Select(a => "'#" + a + "'").ToList();
            var updateNameList  = _table.ColumnNames.Select(a => a + "='#" + a + "'").ToList();

            _deleteRollBackSql     =
                _insertSql         = string.Format("insert into {0} ({1}) VALUES ({2})", tableName, _table.ColumnNames.PackString(','), insertValueList.PackString(','));
            _insertRollBackSql     =
                _deleteSql         = string.Format("delete from {0} where {1} = '#{1}'", tableName, _table.PrimaryKey);
            _updateSql             =
                _updateRollBackSql = string.Format("UPDATE {0} SET {1} WHERE {2} = '#{2}'", tableName, updateNameList.PackString(','), _table.PrimaryKey);
            _querySql = string.Format("select {0} from {1}", _table.ColumnNamesWithTableName.PackString(','), tableName);
            _findSql  = string.Format("{0} where {1} = '#{1}'", _querySql, _table.PrimaryKey);
        }
Beispiel #2
0
        public static void InitConnection(this DbContextOptionsBuilder optionsBuilder, string dbName = "")
        {
            switch (Setting.DbClientType)
            {
            case ClientType.MySql:
                optionsBuilder.UseMySQL(DbUtility.ConnString(dbName)); break;

            case ClientType.SqlSever:
                optionsBuilder.UseSqlServer(DbUtility.ConnString(dbName)); break;

            case ClientType.Oracle:
                throw new NotSupportedException();

            //optionsBuilder.UseOracle(DbUtility.ConnString(dbName)); break;
            default: throw new NotSupportedException();
            }
        }
Beispiel #3
0
        private List <List <string> > _dbDataSource(ReportModel report, string parms, string dbConnStringKey, int pageIndex, int perCount)
        {
            var sql       = "";
            var sql2Count = "";

            try
            {
                sql = string.Format(report.SqlStr, // FormatString(
                                    parms.UnPackString(';').ToArray <object>()
                                                   // )
                                    );
                var sqls = Query_Template(sql, pageIndex, perCount, _filterScript);
                _finalSql = sqls[0];
                sql2Count = sqls[1];
            }
            catch (Exception ex)
            {
                throw new SqlErrorException("请检查parms个数和Sql中预留参数个数是否相同!\n" + ex.Message);
            }
            var connStr = DbUtility.ConnString(dbConnStringKey);
            List <List <string> > dataRows;

            try
            {
                dataRows    = _finalSql.ExecuteReader(connStr);
                _totalCount = int.Parse(sql2Count.ExecuteReader(connStr)[0][0]);
            }
            catch (Exception ex)
            {
                throw new DataBaseNotFoundException("读取数据库" + dbConnStringKey + "时出现异常:" + ex.Message);
            }

            //删除第一列
            dataRows = dataRows.RemoveCol(0);
            return(dataRows);
        }