public void Returns_typed_database_object()
        {
            var database = new SqlServerDatabase(
                TestHelpers.Instance.CreateContext(),
                Mock.Of<ISqlServerDataStoreCreator>(),
                Mock.Of<ISqlServerConnection>(),
                Mock.Of<Migrator>(),
                new LoggerFactory());

            Assert.Same(database, database.AsSqlServer());
        }
예제 #2
0
 private ServiceLocator()
 {
     switch (ConfigFile.DatabaseEngine)
       {
     case DatabaseEngine.Microsoft:
       Database = new SqlServerDatabase(new SqlCommand(), new SqlConnection());
       break;
     case DatabaseEngine.Postgres:
       Database = new PostgreSqlDatabase(new NpgsqlCommand(), new NpgsqlConnection());
       break;
     case DatabaseEngine.Compact:
       Database = new SqlCompactDatabase(new SqlCeCommand(), new SqlCeConnection());
       break;
     case DatabaseEngine.Access:
       Database = new AccessDatabase(new OleDbCommand(), new OleDbConnection());
       break;
     default:
       throw new NotSupportedException(string.Format("Database {0} is not supported", ConfigFile.DatabaseEngine));
       }
 }
예제 #3
0
 public DatabaseSelected(SqlServerDatabase database)
 {
     Database = database;
 }
예제 #4
0
        public override DbCommand CreateCommand()
        {
            var db = new SqlServerDatabase("");
            var cm = db.CreateCommand();

            cm.CommandType = CommandType.StoredProcedure;
            cm.CommandText = this.GetStoredProcedureName();

            DbParameter p = null;

            p = db.CreateParameter("@BigIntColumn", SqlDbType.BigInt, 19, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.BigIntColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@IntColumn", SqlDbType.Int, 10, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.IntColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@FloatColumn", SqlDbType.Float, 53, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.FloatColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@BinaryColumn", SqlDbType.Binary, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 100;
            p.Value        = this.BinaryColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@TimestampColumn", SqlDbType.Timestamp, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.InputOutput;
            p.Value        = this.TimestampColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@VarBinaryColumn", SqlDbType.VarBinary, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 100;
            p.Value        = this.VarBinaryColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@BitColumn", SqlDbType.Bit, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.BitColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NCharColumn", SqlDbType.NChar, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 100;
            p.Value        = this.NCharColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NTextColumn", SqlDbType.NText, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 1073741823;
            p.Value        = this.NTextColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NVarCharColumn", SqlDbType.NVarChar, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 100;
            p.Value        = this.NVarCharColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@PK_BigIntColumn", SqlDbType.BigInt, 19, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.PK_BigIntColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@PK_IntColumn", SqlDbType.Int, 10, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.PK_IntColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@PK_FloatColumn", SqlDbType.Float, 53, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.PK_FloatColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@PK_TimestampColumn", SqlDbType.Timestamp, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.PK_TimestampColumn;
            cm.Parameters.Add(p);

            for (int i = 0; i < cm.Parameters.Count; i++)
            {
                if (cm.Parameters[i].Value == null)
                {
                    cm.Parameters[i].Value = DBNull.Value;
                }
            }
            return(cm);
        }
예제 #5
0
 public FoodDAO()
 {
     db = new SqlServerDatabase();
 }
 public string CreateSelectSql(byte[] value) => SqlServerDatabase.CreateSelectSql(value);
예제 #7
0
 public RoleStore(SqlServerDatabase database)
 {
     _roleTable = new RoleTable <T>(database);
     Database   = database;
 }
예제 #8
0
 public SqlClientSelectValueFixture()
 {
     SqlServerDatabase.CreateSelectValueTable(this);
 }
예제 #9
0
 /// <summary>
 /// 初始调用的化数据库
 /// </summary>
 protected override void NewDatabase()
 {
     Database = new SqlServerDatabase();
 }
예제 #10
0
        public override DbCommand CreateCommand()
        {
            var db = new SqlServerDatabase("");
            var cm = db.CreateCommand();

            cm.CommandType = CommandType.StoredProcedure;
            cm.CommandText = this.GetStoredProcedureName();

            DbParameter p = null;

            p = db.CreateParameter("@PrimaryKeyColumn", SqlDbType.BigInt, 19, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.PrimaryKeyColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@TimestampColumn", SqlDbType.Timestamp, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.InputOutput;
            p.Value        = this.TimestampColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@BigIntColumn", SqlDbType.BigInt, 19, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.BigIntColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@BinaryColumn", SqlDbType.Binary, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 100;
            p.Value        = this.BinaryColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@ImageColumn", SqlDbType.Image, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 2147483647;
            p.Value        = this.ImageColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@VarBinaryColumn", SqlDbType.VarBinary, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 100;
            p.Value        = this.VarBinaryColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@BitColumn", SqlDbType.Bit, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.BitColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@CharColumn", SqlDbType.Char, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 100;
            p.Value        = this.CharColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NCharColumn", SqlDbType.NChar, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 100;
            p.Value        = this.NCharColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NTextColumn", SqlDbType.NText, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 1073741823;
            p.Value        = this.NTextColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NVarCharColumn", SqlDbType.NVarChar, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 100;
            p.Value        = this.NVarCharColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@TextColumn", SqlDbType.Text, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 2147483647;
            p.Value        = this.TextColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@VarCharColumn", SqlDbType.VarChar, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 100;
            p.Value        = this.VarCharColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@XmlColumn", SqlDbType.Xml, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = -1;
            p.Value        = this.XmlColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@DateTimeColumn", SqlDbType.DateTime, null, 3);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.DateTimeColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@SmallDateTimeColumn", SqlDbType.SmallDateTime, null, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.SmallDateTimeColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@DateColumn", SqlDbType.Date, null, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.DateColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@TimeColumn", SqlDbType.Time, null, 7);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.TimeColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@DateTime2Column", SqlDbType.DateTime2, null, 7);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.DateTime2Column;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@DecimalColumn", SqlDbType.Decimal, 18, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.DecimalColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@MoneyColumn", SqlDbType.Money, 19, 4);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.MoneyColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@SmallMoneyColumn", SqlDbType.SmallMoney, 10, 4);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.SmallMoneyColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@FloatColumn", SqlDbType.Float, 53, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.FloatColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@IntColumn", SqlDbType.Int, 10, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.IntColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@RealColumn", SqlDbType.Real, 24, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.RealColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@UniqueIdentifierColumn", SqlDbType.UniqueIdentifier, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.UniqueIdentifierColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@SmallIntColumn", SqlDbType.SmallInt, 5, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.SmallIntColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@TinyIntColumn", SqlDbType.TinyInt, 3, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.TinyIntColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@DateTimeOffsetColumn", SqlDbType.DateTimeOffset, null, 7);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.DateTimeOffsetColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@SqlVariantColumn", SqlDbType.Variant, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 0;
            p.Value        = this.SqlVariantColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@GeometryColumn", SqlDbType.Udt, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = -1;
            p.SetUdtTypeName("geometry");
            p.Value = this.GeometryColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@GeographyColumn", SqlDbType.Udt, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = -1;
            p.SetUdtTypeName("geography");
            p.Value = this.GeographyColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@HierarchyIDColumn", SqlDbType.Udt, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 892;
            p.SetUdtTypeName("hierarchyid");
            p.Value = this.HierarchyIDColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@EnumColumn", SqlDbType.NVarChar, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 20;
            p.Value        = this.EnumColumn.ToStringFromEnum();
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullBigIntColumn", SqlDbType.BigInt, 19, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullBigIntColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullBinaryColumn", SqlDbType.Binary, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 100;
            p.Value        = this.NotNullBinaryColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullImageColumn", SqlDbType.Image, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 2147483647;
            p.Value        = this.NotNullImageColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullVarBinaryColumn", SqlDbType.VarBinary, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 100;
            p.Value        = this.NotNullVarBinaryColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullBitColumn", SqlDbType.Bit, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullBitColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullCharColumn", SqlDbType.Char, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 100;
            p.Value        = this.NotNullCharColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullNCharColumn", SqlDbType.NChar, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 100;
            p.Value        = this.NotNullNCharColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullNTextColumn", SqlDbType.NText, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 1073741823;
            p.Value        = this.NotNullNTextColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullNVarCharColumn", SqlDbType.NVarChar, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 100;
            p.Value        = this.NotNullNVarCharColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullTextColumn", SqlDbType.Text, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 2147483647;
            p.Value        = this.NotNullTextColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullVarCharColumn", SqlDbType.VarChar, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 100;
            p.Value        = this.NotNullVarCharColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullXmlColumn", SqlDbType.Xml, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = -1;
            p.Value        = this.NotNullXmlColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullDateTimeColumn", SqlDbType.DateTime, null, 3);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullDateTimeColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullSmallDateTimeColumn", SqlDbType.SmallDateTime, null, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullSmallDateTimeColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullDateColumn", SqlDbType.Date, null, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullDateColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullTimeColumn", SqlDbType.Time, null, 7);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullTimeColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullDateTime2Column", SqlDbType.DateTime2, null, 7);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullDateTime2Column;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullDecimalColumn", SqlDbType.Decimal, 18, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullDecimalColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullMoneyColumn", SqlDbType.Money, 19, 4);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullMoneyColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullSmallMoneyColumn", SqlDbType.SmallMoney, 10, 4);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullSmallMoneyColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullFloatColumn", SqlDbType.Float, 53, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullFloatColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullIntColumn", SqlDbType.Int, 10, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullIntColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullRealColumn", SqlDbType.Real, 24, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullRealColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullUniqueIdentifierColumn", SqlDbType.UniqueIdentifier, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullUniqueIdentifierColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullSmallIntColumn", SqlDbType.SmallInt, 5, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullSmallIntColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullTinyIntColumn", SqlDbType.TinyInt, 3, 0);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullTinyIntColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullDateTimeOffsetColumn", SqlDbType.DateTimeOffset, null, 7);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Value        = this.NotNullDateTimeOffsetColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullSqlVariantColumn", SqlDbType.Variant, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 0;
            p.Value        = this.NotNullSqlVariantColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullGeometryColumn", SqlDbType.Udt, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = -1;
            p.SetUdtTypeName("geometry");
            p.Value = this.NotNullGeometryColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullGeographyColumn", SqlDbType.Udt, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = -1;
            p.SetUdtTypeName("geography");
            p.Value = this.NotNullGeographyColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullHierarchyIDColumn", SqlDbType.Udt, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 892;
            p.SetUdtTypeName("hierarchyid");
            p.Value = this.NotNullHierarchyIDColumn;
            cm.Parameters.Add(p);

            p = db.CreateParameter("@NotNullEnumColumn", SqlDbType.NVarChar, null, null);
            p.SourceColumn = p.ParameterName;
            p.Direction    = ParameterDirection.Input;
            p.Size         = 20;
            p.Value        = this.NotNullEnumColumn.ToStringFromEnum();
            cm.Parameters.Add(p);

            for (int i = 0; i < cm.Parameters.Count; i++)
            {
                if (cm.Parameters[i].Value == null)
                {
                    cm.Parameters[i].Value = DBNull.Value;
                }
            }
            return(cm);
        }
예제 #11
0
파일: Form1.cs 프로젝트: emacslisp/cs
 public Form1()
 {
     InitializeComponent();
     db = new SqlServerDatabase(host, databaseName, username, password);
 }
예제 #12
0
 public AuthenticationApi(SqlServerDatabase database)
 {
     this.database = database;
 }
예제 #13
0
        public void ExportDefinitionForRothschildHouseEntities()
        {
            // Arrange
            var database = SqlServerDatabase.CreateWithDefaults("RothschildHouse");

            database.ExtendedProperties.Add(new ExtendedProperty("MS_Description", "Database to storage RothschildHouse payments"));

            database.AddDefaultTypeMapFor(typeof(string), "nvarchar");

            var person = database
                         .DefineEntity(new
            {
                PersonID   = Guid.Empty,
                GivenName  = "",
                MiddleName = "",
                FamilyName = "",
                FullName   = "",
                BirthDate  = DateTime.Now
            })
                         .SetNaming("Person", "People")
                         .SetColumnFor(p => p.GivenName, length: 10)
                         .SetColumnFor(p => p.MiddleName, length: 10, nullable: true)
                         .SetColumnFor(p => p.FamilyName, length: 10)
                         .SetColumnFor(p => p.FullName, length: 30)
                         .SetPrimaryKey(p => p.PersonID)
                         .AddExtendedProperty("MS_Description", "Person catalog")
                         .AddExtendedProperty(p => p.GivenName, "MS_Description", "Given name")
                         .AddExtendedProperty(p => p.MiddleName, "MS_Description", "Middle name")
                         .AddExtendedProperty(p => p.FamilyName, "MS_Description", "Family name")
                         .AddExtendedProperty(p => p.FullName, "MS_Description", "Full name")
                         .AddExtendedProperty(p => p.BirthDate, "MS_Description", "Birth date");

            var creditCard = database
                             .DefineEntity(new
            {
                CreditCardID   = Guid.Empty,
                PersonID       = Guid.Empty,
                CardType       = "",
                CardNumber     = "",
                Last4Digits    = "",
                ExpirationDate = DateTime.Now,
                Cvv            = ""
            })
                             .SetNaming("CreditCard", "Payment")
                             .SetColumnFor(p => p.CardType, type: "nvarchar", length: 20)
                             .SetColumnFor(p => p.CardNumber, type: "nvarchar", length: 20)
                             .SetColumnFor(p => p.Last4Digits, type: "nvarchar", length: 4)
                             .SetColumnFor(p => p.Cvv, type: "nvarchar", length: 4)
                             .SetPrimaryKey(p => p.CreditCardID)
                             .AddUnique(p => p.CardNumber)
                             .AddForeignKey(p => p.PersonID, person.Table)
                             .AddExtendedProperty(p => p.PersonID, "MS_Description", "Person Identifier")
                             .AddExtendedProperty(p => p.CardType, "MS_Description", "Card type")
                             .AddExtendedProperty(p => p.CardNumber, "MS_Description", "Card number")
                             .AddExtendedProperty(p => p.Last4Digits, "MS_Description", "Last 4 Digits")
                             .AddExtendedProperty(p => p.ExpirationDate, "MS_Description", "Expiration Date")
                             .AddExtendedProperty(p => p.Cvv, "MS_Description", "Card Verification Value");

            var paymentTransaction = database
                                     .DefineEntity(new
            {
                PaymentTransactionID = Guid.Empty,
                CreditCardID         = Guid.Empty,
                ConfirmationID       = Guid.Empty,
                Amount          = 0m,
                PaymentDateTime = DateTime.Now
            })
                                     .SetNaming("PaymentTransaction", "Payment")
                                     .SetColumnFor(p => p.Amount, prec: 10, scale: 4)
                                     .SetPrimaryKey(p => p.CreditCardID)
                                     .AddForeignKey(p => p.CreditCardID, creditCard.Table)
                                     .AddExtendedProperty(p => p.PaymentTransactionID, "MS_Description", "Payment Transaction Identifier")
                                     .AddExtendedProperty(p => p.CreditCardID, "MS_Description", "Credit Card Identifier")
                                     .AddExtendedProperty(p => p.ConfirmationID, "MS_Description", "Confirmation Identifier")
                                     .AddExtendedProperty(p => p.Amount, "MS_Description", "Transaction Amount")
                                     .AddExtendedProperty(p => p.PaymentDateTime, "MS_Description", "Payment Date time");

            // Act

            SqlServerDatabaseScriptCodeBuilder.CreateScript(database, @"C:\Temp\CatFactory.SqlServer", true);
        }
예제 #14
0
        public DataTable InsertDataToLocationLog(GetRequestDataRequests rq, DataTable rqIden, bool NoPosition, DataTable reqtableCurrent)
        {
            DataTable dtlog = new DataTable();
            DataRow   dtlogRow;

            dtlog.Columns.Add("UserMobileId", typeof(String));
            dtlog.Columns.Add("DeviceId", typeof(String));
            dtlog.Columns.Add("Latitude", typeof(String));
            dtlog.Columns.Add("Longitude", typeof(String));
            dtlog.Columns.Add("DeviceDateTime", typeof(String));
            dtlog.Columns.Add("Battery", typeof(String));
            dtlog.Columns.Add("SOS", typeof(String));
            dtlog.Columns.Add("Device_Brand_Id", typeof(String));
            dtlog.Columns.Add("Source_Id", typeof(String));
            dtlog.Columns.Add("locationNameTh", typeof(String));
            dtlog.Columns.Add("locationNameEn", typeof(String));
            dtlog.Columns.Add("locationProvinceTh", typeof(String));
            dtlog.Columns.Add("locationDistrictTh", typeof(String));
            dtlog.Columns.Add("locationSubDistrictTh", typeof(String));
            dtlog.Columns.Add("locationProvinceEn", typeof(String));
            dtlog.Columns.Add("locationDistrictEn", typeof(String));
            dtlog.Columns.Add("locationSubDistrictEn", typeof(String));
            dtlog.Columns.Add("GPSAcc", typeof(String));
            dtlog.Columns.Add("AreaId", typeof(String));
            dtlog.Columns.Add("AreaStatus", typeof(String));
            dtlog.Columns.Add("Location_type", typeof(String));

            // ค่านี้ทุกตัวต้องมีเหมือนกันหมด
            //dtlogRow = dtlog.NewRow();
            //dtlogRow["UserMobileId"] = rq.userId.ToString();
            //dtlogRow["Battery"] = rq.batteryLevel.ToString();
            //dtlogRow["DeviceId"] = rq.deviceId.ToString();
            //dtlogRow["SOS"] = rq.sos.ToString();
            //dtlogRow["Device_Brand_Id"] = rq.device_Brand_Id.ToString(); ;
            //dtlogRow["Source_Id"] = rq.source_Id.ToString();
            //dtlogRow["GPSAcc"] = null;
            //dtlogRow["Accuracy"] = rq.accuracy.ToString();
            //dtlogRow["Location_type"] = rq.location_type.ToString();
            CheckPointSendNoticController cheknull = new CheckPointSendNoticController();

            //กรณีมี Position เเละ Iden ได้
            if (NoPosition == false && rqIden != null)
            {
                for (int i = 0; i < rq.position.Count(); i++)
                {
                    dtlogRow = dtlog.NewRow();
                    dtlogRow["UserMobileId"]    = rq.userId.ToString();
                    dtlogRow["Battery"]         = rq.batteryLevel.ToString();
                    dtlogRow["DeviceId"]        = rq.deviceId.ToString();
                    dtlogRow["SOS"]             = rq.sos.ToString();
                    dtlogRow["Device_Brand_Id"] = rq.device_Brand_Id.ToString();;
                    dtlogRow["Source_Id"]       = rq.source_Id.ToString();
                    dtlogRow["GPSAcc"]          = cheknull.checknull_setnull_todatabase(rq.accuracy);
                    dtlogRow["Location_type"]   = cheknull.checknull_setnull_todatabase(rq.location_type);


                    dtlogRow["Latitude"]       = rq.position[i].latitude.ToString();
                    dtlogRow["Longitude"]      = rq.position[i].longitude.ToString();
                    dtlogRow["DeviceDateTime"] = rq.position[i].gpsDateTime.ToString();

                    if (reqtableCurrent != null)
                    {
                        if (reqtableCurrent.Rows[0]["AreaId"].ToString() == "")
                        {
                            dtlogRow["AreaId"] = null;
                        }
                        else
                        {
                            dtlogRow["AreaId"] = reqtableCurrent.Rows[0]["AreaId"].ToString();
                        }

                        if (reqtableCurrent.Rows[0]["AreaStatus"].ToString() == "")
                        {
                            dtlogRow["AreaStatus"] = null;
                        }
                        else
                        {
                            dtlogRow["AreaStatus"] = reqtableCurrent.Rows[0]["AreaStatus"].ToString();
                        }
                    }

                    //บรรทัดสุดท้ายใส่ที่ Iden ลงไป
                    if (i == rq.position.Count() - 1)
                    {
                        dtlogRow["locationNameTh"]        = rqIden.Rows[0]["Name_L"].ToString();
                        dtlogRow["locationNameEn"]        = rqIden.Rows[0]["Name_E"].ToString();
                        dtlogRow["locationProvinceTh"]    = rqIden.Rows[0]["AdminLevel1_L"].ToString();
                        dtlogRow["locationDistrictTh"]    = rqIden.Rows[0]["AdminLevel2_L"].ToString();
                        dtlogRow["locationSubDistrictTh"] = rqIden.Rows[0]["AdminLevel3_L"].ToString();
                        dtlogRow["locationProvinceEn"]    = rqIden.Rows[0]["AdminLevel1_E"].ToString();
                        dtlogRow["locationDistrictEn"]    = rqIden.Rows[0]["AdminLevel2_E"].ToString();
                        dtlogRow["locationSubDistrictEn"] = rqIden.Rows[0]["AdminLevel3_E"].ToString();
                    }

                    dtlog.Rows.Add(dtlogRow);
                }
            }
            //กรณีมี Position เเละ Iden ไม่ได้
            else if (NoPosition == false && rqIden == null)
            {
                for (int i = 0; i < rq.position.Count(); i++)
                {
                    dtlogRow = dtlog.NewRow();
                    dtlogRow["UserMobileId"]    = rq.userId.ToString();
                    dtlogRow["Battery"]         = rq.batteryLevel.ToString();
                    dtlogRow["DeviceId"]        = rq.deviceId.ToString();
                    dtlogRow["SOS"]             = rq.sos.ToString();
                    dtlogRow["Device_Brand_Id"] = rq.device_Brand_Id.ToString();;
                    dtlogRow["Source_Id"]       = rq.source_Id.ToString();
                    dtlogRow["GPSAcc"]          = cheknull.checknull_setnull_todatabase(rq.accuracy);
                    dtlogRow["Location_type"]   = cheknull.checknull_setnull_todatabase(rq.location_type);

                    dtlogRow["Latitude"]       = rq.position[i].latitude.ToString();
                    dtlogRow["Longitude"]      = rq.position[i].longitude.ToString();
                    dtlogRow["DeviceDateTime"] = rq.position[i].gpsDateTime.ToString();

                    if (reqtableCurrent != null)
                    {
                        if (reqtableCurrent.Rows[0]["AreaId"].ToString() == "")
                        {
                            dtlogRow["AreaId"] = null;
                        }
                        else
                        {
                            dtlogRow["AreaId"] = reqtableCurrent.Rows[0]["AreaId"].ToString();
                        }

                        if (reqtableCurrent.Rows[0]["AreaStatus"].ToString() == "")
                        {
                            dtlogRow["AreaStatus"] = null;
                        }
                        else
                        {
                            dtlogRow["AreaStatus"] = reqtableCurrent.Rows[0]["AreaStatus"].ToString();
                        }
                    }

                    dtlog.Rows.Add(dtlogRow);
                }
            }
            //กรณีมี ไม่มี Position
            else if (NoPosition == true)
            {
                dtlogRow = dtlog.NewRow();
                dtlogRow["UserMobileId"]    = rq.userId.ToString();
                dtlogRow["Battery"]         = rq.batteryLevel.ToString();
                dtlogRow["DeviceId"]        = rq.deviceId.ToString();
                dtlogRow["SOS"]             = rq.sos.ToString();
                dtlogRow["Device_Brand_Id"] = rq.device_Brand_Id.ToString();;
                dtlogRow["Source_Id"]       = rq.source_Id.ToString();
                dtlogRow["GPSAcc"]          = cheknull.checknull_setnull_todatabase(rq.accuracy);
                dtlogRow["Location_type"]   = cheknull.checknull_setnull_todatabase(rq.location_type);

                dtlog.Rows.Add(dtlogRow);
            }


            SqlServerDatabase sqlServerDatabase = new SqlServerDatabase();
            SqlConnection     sqlCon            = sqlServerDatabase.GetSqlConnection(ConfigurationSettings.AppSettings["db_server"].ToString()
                                                                                     , ConfigurationSettings.AppSettings["db_databaseName"].ToString()
                                                                                     , ConfigurationSettings.AppSettings["db_user"].ToString()
                                                                                     , ConfigurationSettings.AppSettings["db_password"].ToString());

            SqlParameter[] sqlParameters = new SqlParameter[] {
                new SqlParameter("@dtlog", dtlog),
            };
            sqlCon.Open();
            string    query = "tamroi.store_InsertLoglocation";
            DataTable dt    = sqlServerDatabase.GetDataTableFromStore(sqlCon, query, sqlParameters);

            sqlCon.Close();
            return(dt);
        }
예제 #15
0
 public RoleTable(SqlServerDatabase database)
 {
     _database = database;
 }
예제 #16
0
 public void Dispose() => SqlServerDatabase.DropSelectValueTable(this);
 public UserClaimsTable(SqlServerDatabase database)
 {
     _database = database;
 }
예제 #18
0
 public ActionResultCreatorTests()
 {
     // Arrange
     // Create the dabase
     db = new SqlServerDatabase("Server=(local);User ID=smarterp;Password=smarterp;Enlist=false;TrustServerCertificate=true");
 }
예제 #19
0
 public UserRolesTable(SqlServerDatabase database)
 {
     _database = database;
 }
        public DataTable UpdateDeviceCurrent(DataTable dtResultIden, GetRequestDataRequests rq, bool NoPosition, DataTable reqdtResultCallInOut)
        {
            //SET BATERY LEVEL
            //string batupdate = reqbatupdate.Rows[0]["batupdate"].ToString();
            //string batvalue = "";
            //if (batupdate == "TRUE")
            //{
            //    // กรณีมีการ Update ข้อมูล แบตจาก Activity Log จะเอาออกมาpdate ที่ table current status
            //    batvalue = reqbatupdate.Rows[0]["batvalue"].ToString();
            //}
            //else if (batupdate == "FALSE")
            //{
            //    // กรณีไม่มีการ Update ข้อมูล แบตจาก Activity Log
            //    batvalue = rq.batteryLevel.ToString();
            //}


            DataTable dt = new DataTable();

            //set ค่าที่ได้มาจาก Device
            int    countPosition    = rq.position.Count() - 1;
            string DeviceId         = rq.deviceId.ToString();
            string currentfrequency = rq.currentFrequency.ToString();
            string onlineStatus     = rq.onlineStatus.ToString();
            string BatteryLevel     = rq.batteryLevel.ToString();
            string accuracy         = checknull_setnull_todatabase(rq.accuracy);
            string location_type    = checknull_setnull_todatabase(rq.location_type);
            string SignalStrength   = checknull_setnull_todatabase(rq.signalGps);


            string Latitude              = null;
            string Longitude             = null;
            string locationNameTh        = null;
            string locationNameEn        = null;
            string locationProvinceTh    = null;
            string locationDistrictTh    = null;
            string locationSubDistrictTh = null;
            string locationProvinceEn    = null;
            string locationDistrictEn    = null;
            string locationSubDistrictEn = null;

            string areaStatus = checknull_setnull_todatabase(reqdtResultCallInOut.Rows[0]["AreaStatus"].ToString());
            string areaId     = checknull_setnull_todatabase(reqdtResultCallInOut.Rows[0]["AreaId"].ToString());

            if (NoPosition == false)
            {
                Latitude  = rq.position[countPosition].latitude.ToString();
                Longitude = rq.position[countPosition].longitude.ToString();
            }

            if (dtResultIden != null)
            {
                locationNameTh        = dtResultIden.Rows[0]["Name_L"].ToString();
                locationNameEn        = dtResultIden.Rows[0]["Name_E"].ToString();
                locationProvinceTh    = dtResultIden.Rows[0]["AdminLevel1_L"].ToString();
                locationDistrictTh    = dtResultIden.Rows[0]["AdminLevel2_L"].ToString();
                locationSubDistrictTh = dtResultIden.Rows[0]["AdminLevel3_L"].ToString();
                locationProvinceEn    = dtResultIden.Rows[0]["AdminLevel1_E"].ToString();
                locationDistrictEn    = dtResultIden.Rows[0]["AdminLevel2_E"].ToString();
                locationSubDistrictEn = dtResultIden.Rows[0]["AdminLevel3_E"].ToString();
            }


            SqlServerDatabase sqlServerDatabase = new SqlServerDatabase();
            SqlConnection     sqlCon            = sqlServerDatabase.GetSqlConnection(ConfigurationSettings.AppSettings["db_server"].ToString()
                                                                                     , ConfigurationSettings.AppSettings["db_databaseName"].ToString()
                                                                                     , ConfigurationSettings.AppSettings["db_user"].ToString()
                                                                                     , ConfigurationSettings.AppSettings["db_password"].ToString());

            SqlParameter[] sqlParameters = new SqlParameter[] {
                new SqlParameter("@DeviceId", DeviceId),
                new SqlParameter("@Latitude", Latitude == null? (object)DBNull.Value : Latitude),
                new SqlParameter("@Longitude", Longitude == null? (object)DBNull.Value : Longitude),
                new SqlParameter("@BatteryLevel", BatteryLevel == null? (object)DBNull.Value : BatteryLevel),
                new SqlParameter("@SignalStrength", SignalStrength == null? (object)DBNull.Value : SignalStrength),
                new SqlParameter("@locationNameTh", locationNameTh == null? (object)DBNull.Value : locationNameTh),
                new SqlParameter("@locationNameEn", locationNameEn == null? (object)DBNull.Value : locationNameEn),
                new SqlParameter("@locationProvinceTh", locationProvinceTh == null? (object)DBNull.Value : locationProvinceTh),
                new SqlParameter("@locationDistrictTh", locationDistrictTh == null? (object)DBNull.Value : locationDistrictTh),
                new SqlParameter("@locationSubDistrictTh", locationSubDistrictTh == null? (object)DBNull.Value : locationSubDistrictTh),
                new SqlParameter("@locationProvinceEn", locationProvinceEn == null? (object)DBNull.Value : locationProvinceEn),
                new SqlParameter("@locationDistrictEn", locationDistrictEn == null? (object)DBNull.Value : locationDistrictEn),
                new SqlParameter("@locationSubDistrictEn", locationSubDistrictEn == null? (object)DBNull.Value : locationSubDistrictEn),
                new SqlParameter("@currentfrequency", currentfrequency == null? (object)DBNull.Value : currentfrequency),
                new SqlParameter("@onlineStatus", onlineStatus == null? (object)DBNull.Value : onlineStatus),
                new SqlParameter("@accuracy", accuracy == null? (object)DBNull.Value : accuracy),
                new SqlParameter("@location_type", location_type == null? (object)DBNull.Value : location_type),

                new SqlParameter("@areaId", areaId == null? (object)DBNull.Value : areaId),
                new SqlParameter("@areaStatus", areaStatus == null? (object)DBNull.Value : areaStatus)
            };
            sqlCon.Open();
            string query = "tamroi.store_UpdateDeviceCurrentStatus";

            dt = sqlServerDatabase.GetDataTableFromStore(sqlCon, query, sqlParameters);
            sqlCon.Close();
            return(dt);
        }
예제 #21
0
        public void CreateDefinitionForCollegeEntities()
        {
            // Arrange
            var database = SqlServerDatabase.CreateWithDefaults("College");

            database.AddDefaultTypeMapFor(typeof(string), "nvarchar");

            // Act
            var student = database
                          .DefineEntity(new { StudentId = 0, FirstName = "", MiddleName = "", LastName = "", Gender = "" })
                          .SetNaming("Student")
                          .SetColumnFor(e => e.FirstName, length: 10)
                          .SetColumnFor(e => e.MiddleName, length: 10, nullable: true)
                          .SetColumnFor(e => e.LastName, length: 10)
                          .SetColumnFor(e => e.Gender, length: 1)
                          .SetIdentity(e => e.StudentId)
                          .SetPrimaryKey(e => e.StudentId)
            ;

            student
            .AddExtendedProperty(e => e.FirstName, "MS_Description", "First name")
            .AddExtendedProperty(e => e.MiddleName, "MS_Description", "Middle name")
            .AddExtendedProperty(e => e.LastName, "MS_Description", "Last name")
            ;

            var course = database
                         .DefineEntity(new { CourseId = 0, Name = "" })
                         .SetNaming("Course")
                         .SetColumnFor(e => e.Name, type: "nvarchar", length: 255)
                         .SetIdentity(e => e.CourseId)
                         .SetPrimaryKey(e => e.CourseId)
                         .AddUnique(e => e.Name)
            ;

            course
            .AddExtendedProperty(e => e.Name, "MS_Description", "Course name")
            ;

            var courseStudent = database
                                .DefineEntity(new { CourseStudentId = 0, CourseId = 0, StudentId = 0 })
                                .SetNaming("CourseStudent")
                                .SetIdentity(e => e.CourseStudentId)
                                .SetPrimaryKey(e => e.CourseStudentId)
                                .AddUnique(e => new { e.CourseId, e.StudentId })
                                .AddForeignKey(e => e.CourseId, course.Table)
                                .AddForeignKey(e => e.StudentId, student.Table)
            ;

            courseStudent
            .AddExtendedProperty(e => e.CourseId, "MS_Description", "Course Id")
            .AddExtendedProperty(e => e.CourseId, "MS_Description", "Student Id")
            ;

            // Assert
            Assert.True(database.DbObjects.Count == 3);
            Assert.True(database.Tables.Count == 3);

            Assert.True(database.DbObjects[0].FullName == "dbo.Student");
            Assert.True(database.DbObjects[1].FullName == "dbo.Course");
            Assert.True(database.DbObjects[2].FullName == "dbo.CourseStudent");

            Assert.True(database.FindTable("dbo.Student").Columns.Count == 5);
            Assert.False(database.FindTable("dbo.Student").Identity == null);
            Assert.False(database.FindTable("dbo.Student").PrimaryKey == null);
            Assert.True(database.FindTable("dbo.Student")["MiddleName"].ImportBag.ExtendedProperties.Count == 1);

            Assert.True(database.FindTable("dbo.Course").Columns.Count == 2);
            Assert.False(database.FindTable("dbo.Course").Identity == null);
            Assert.False(database.FindTable("dbo.Course").PrimaryKey == null);
            Assert.True(database.FindTable("dbo.Course").Uniques.Count == 1);

            Assert.True(database.FindTable("dbo.CourseStudent").Columns.Count == 3);
            Assert.False(database.FindTable("dbo.CourseStudent").Identity == null);
            Assert.False(database.FindTable("dbo.CourseStudent").PrimaryKey == null);

            Assert.True(student.Table.Columns.Count == 5);
            Assert.False(student.Table.PrimaryKey == null);
            Assert.False(student.Table.Identity == null);

            Assert.True(course.Table.Columns.Count == 2);
            Assert.False(course.Table.PrimaryKey == null);
            Assert.False(course.Table.Identity == null);

            Assert.True(courseStudent.Table.Columns.Count == 3);
            Assert.False(courseStudent.Table.PrimaryKey == null);
            Assert.False(courseStudent.Table.PrimaryKey.Key.Count == 2);
            Assert.False(courseStudent.Table.Identity == null);
        }
예제 #22
0
        /// <summary>
        /// 创建一个数据提供程序实例
        /// </summary>
        /// <param name="connectionStringName"></param>
        /// <returns></returns>
        public static Database Create(string connectionStringName)
        {
            CheckUtil.ArgumentNotNullOrEmpty(connectionStringName, "connectionStringName");

            ConnectionStringSettings css = ConfigurationManager.ConnectionStrings[connectionStringName];

            if (css == null)
            {
                throw new Exception(string.Format(Resources.Data.ConnectionStringNameNotFound, connectionStringName));
            }

            string            connectionString = css.ConnectionString;
            string            providerName     = css.ProviderName;
            Database          db = new SqlServerDatabase(connectionString);
            DbProviderFactory providerFactory = null;

            if (string.IsNullOrEmpty(providerName))
            {
                return(db);
            }

            providerFactory = DbProviderFactories.GetFactory(css.ProviderName);
            if (providerFactory == null)
            {
                throw new Exception(string.Format(Resources.Data.DataProviderNotFound, css.ProviderName));
            }

            switch (providerName)
            {
            //case "System.Data.SqlClient":
            //    break;
            case "System.Data.Odbc":
                db = new OdbcDatabase(connectionString);
                break;

            case "System.Data.OleDb":
                db = new OleDbDatabase(connectionString);
                break;

            case "System.Data.OracleClient":
                db = new OracleDatabase(connectionString);
                break;

            case "System.Data.SQLite":
                db = new SQLiteDatabase(connectionString, providerFactory);
                break;

            case "MySql.Data.MySqlClient":
                db = new MySqlDatabase(connectionString, providerFactory);
                break;

            case "IBM.Data.DB2":
                db = new DB2Database(connectionString, providerFactory);
                break;

            case "FirebirdSql.Data.FirebirdClient":
                db = new FirebirdDatabase(connectionString, providerFactory);
                break;

            default:
                break;
            }

            return(db);
        }
예제 #23
0
        public static void CreateOrUpdateTable(SqlServerDatabase database, TableMapping mapping)
        {
            if (!database.TableExists(mapping.TableName))
            {
                // this is the easy case, we need to create the table
                string createTable = MappingEngine.GetCreateTableScript(mapping);
                database.ExecuteNonQuery(createTable);
            }
            else
            {
                StringBuilder log = new StringBuilder();

                // the hard part, figure out if table needs to be altered...
                TableMapping         actual  = LoadTableMetadata(database, mapping);
                List <ColumnMapping> renames = new List <ColumnMapping>();
                StringBuilder        sb      = new StringBuilder();
                // See if any new columns need to be added.
                foreach (ColumnMapping c in mapping.Columns)
                {
                    ColumnMapping ac = actual.FindColumn(c.ColumnName);
                    if (ac == null)
                    {
                        if (!string.IsNullOrEmpty(c.OldColumnName))
                        {
                            ac = actual.FindColumn(c.OldColumnName);
                            if (ac != null)
                            {
                                // this column needs to be renamed, ALTER TABLE doesn't allow renames, so the most efficient way to do it
                                // is add the new column, do an UPDATE to copy all the values over, then DROP the old column.
                                if (c.IsPrimaryKey || ac.IsPrimaryKey)
                                {
                                    throw new NotImplementedException("Cannot rename the primary key automatically, sorry");
                                }
                                // we delimerately do NOT copy the AllowNulls because we can't set that yet.
                                ColumnMapping clone = new ColumnMapping()
                                {
                                    ColumnName    = c.ColumnName,
                                    OldColumnName = c.OldColumnName,
                                    MaxLength     = c.MaxLength,
                                    Precision     = c.Precision,
                                    Scale         = c.Scale,
                                    SqlType       = c.SqlType,
                                    AllowNulls    = true // because we can't set this initially until we populate the column.
                                };
                                renames.Add(clone);
                            }
                        }


                        sb.Append(string.Format("ALTER TABLE [{0}] ADD ", mapping.TableName));
                        c.GetPartialSqlDefinition(sb);

                        string cmd = sb.ToString();
                        log.AppendLine(cmd);
                        database.ExecuteScalar(cmd);
                        sb.Length = 0;
                    }
                }

                if (renames.Count > 0)
                {
                    sb.Length = 0;
                    // now copy the data across to the new column that was added.
                    foreach (ColumnMapping c in renames)
                    {
                        if (sb.Length > 0)
                        {
                            sb.AppendLine(",");
                        }
                        sb.Append(string.Format("[{0}] = [{1}]", c.ColumnName, c.OldColumnName));
                        actual.Columns.Add(c);
                    }

                    string update = string.Format("UPDATE [{0}] SET ", mapping.TableName) + sb.ToString();
                    log.AppendLine(update);
                    database.ExecuteScalar(update);
                    sb.Length = 0;
                }

                // See if any columns need to be dropped.
                foreach (ColumnMapping c in actual.Columns)
                {
                    ColumnMapping ac = mapping.FindColumn(c.ColumnName);
                    if (ac == null)
                    {
                        string drop = string.Format("ALTER TABLE [{0}]  DROP  COLUMN [{1}] ", mapping.TableName, c.ColumnName);
                        log.AppendLine(drop);
                        database.ExecuteScalar(drop);
                    }
                }

                // Lastly see if any types or maxlengths need to be changed.
                foreach (ColumnMapping c in actual.Columns)
                {
                    ColumnMapping ac = mapping.FindColumn(c.ColumnName);
                    if (ac != null)
                    {
                        if (c.MaxLength != ac.MaxLength || c.SqlType != ac.SqlType || c.Precision != ac.Precision || c.Scale != ac.Scale ||
                            c.AllowNulls != ac.AllowNulls)
                        {
                            if (sb.Length > 0)
                            {
                                sb.AppendLine(",");
                            }
                            sb.Append(string.Format("ALTER TABLE [{0}]  ALTER COLUMN ", mapping.TableName));
                            ac.GetSqlDefinition(sb);

                            string alter = sb.ToString();
                            log.AppendLine(alter);
                            database.ExecuteScalar(alter);
                            sb.Length = 0;
                        }
                    }
                }

                if (log.Length > 0)
                {
                    database.AppendLog(log.ToString());
                }
            }
        }
 public AdoNetBatchingTests()
 {
     Database = new SqlServerDatabase();
     Database.Initialize();
 }
예제 #25
0
 public SqlServerDatabaseTests()
 {
     // Arrange
     // Create the dabase
     db = new SqlServerDatabase("Server=(local);User ID=test;Password=test;Enlist=false;TrustServerCertificate=true", true);
 }
예제 #26
0
 public TokenManager(SqlServerDatabase database)
 {
     this.database = database;
 }
예제 #27
0
 public DatabaseCreated(SqlServerDatabase database)
 {
     Database = database;
 }
예제 #28
0
 public async Task TestDynamic()
 {
     var database = new SqlServerDatabase(connectionString, forceIsolationLevelSnapshot: true);
     await DynamicUnitTest.TestDatabase(database, Assembly.GetExecutingAssembly(), dbSql);
 }
예제 #29
0
        /// <summary>
        /// 创建一个数据提供程序实例
        /// </summary>
        /// <param name="connectionStringName"></param>
        /// <returns></returns>
        public static Database Create(string connectionStringName)
        {
            CheckUtil.ArgumentNotNullOrEmpty(connectionStringName, "connectionStringName");

            ConnectionStringSettings css = ConfigurationManager.ConnectionStrings[connectionStringName];

            if (css == null)
            {
                throw new Exception(string.Format(Resources.Data.ConnectionStringNameNotFound, connectionStringName));
            }

            string            connectionString = css.ConnectionString;
            string            providerName     = css.ProviderName;
            Database          db = new SqlServerDatabase(connectionString);
            DbProviderFactory providerFactory = null;

            if (string.IsNullOrEmpty(providerName))
            {
                return(db);
            }

            //if (css.ProviderName == "System.Data.OleDb")
            //{
            //    providerFactory = OleDbFactory.Instance;
            //}
            //else
            //{
            //    providerFactory = DbProviderFactories.GetFactory(css.ProviderName);
            //}
            //if (providerFactory == null) throw new Exception(string.Format(Resources.Data.DataProviderNotFound, css.ProviderName));

            switch (providerName)
            {
            //case "System.Data.SqlClient":
            //    break;
            case "System.Data.Odbc":
                db = new OdbcDatabase(connectionString);
                break;

            case "System.Data.OleDb":
                db = new OleDbDatabase(connectionString);
                break;

            case "System.Data.OracleClient":
                db = new OracleDatabase(connectionString);
                break;

            case "Oracle.ManagedDataAccess.Client":
                db = new OracleDatabase(connectionString);
                break;

            case "Devart.Data.Oracle": //http://evget.com/zh-CN/product/954/feature.aspx  http://www.devart.com/
            case "DDTek.Oracle":       //http://www.datadirect.com/index.html
                providerFactory = DbProviderFactories.GetFactory(providerName);
                db = new OracleDatabase(connectionString, providerFactory);
                break;

            case "System.Data.SQLite":
                providerFactory = DbProviderFactories.GetFactory(providerName);
                db = new SQLiteDatabase(connectionString, providerFactory);
                break;

            case "MySql.Data.MySqlClient":
                providerFactory = DbProviderFactories.GetFactory(providerName);
                db = new MySqlDatabase(connectionString, providerFactory);
                break;

            case "IBM.Data.DB2":
                providerFactory = DbProviderFactories.GetFactory(providerName);
                db = new DB2Database(connectionString, providerFactory);
                break;

            case "FirebirdSql.Data.FirebirdClient":
                providerFactory = DbProviderFactories.GetFactory(providerName);
                db = new FirebirdDatabase(connectionString, providerFactory);
                break;

            default:
                break;
            }

            return(db);
        }
예제 #30
0
 public override void Execute()
 {
     SqlServerDatabase.UpgradeExisting(scriptDirectory);
     Log.i("DB", "Database upgraded successfully.");
 }
예제 #31
0
 public MicrosoftSqlClient4SelectValueFixture()
 {
     SqlServerDatabase.CreateSelectValueTable(this);
 }
예제 #32
0
        /// <summary>
        /// 创建一个数据提供程序实例
        /// </summary>
        /// <param name="connectionStringName"></param>
        /// <returns></returns>
        public static Database Create(string connectionStringName)
        {
            CheckUtil.ArgumentNotNullOrEmpty(connectionStringName, "connectionStringName");
            DbConnConfigDAL dal = new DbConnConfigDAL();

            var model = dal.FindOne(connectionStringName);

            if (model == null)
            {
                throw new Exception(string.Format(Resources.Data.ConnectionStringNameNotFound, connectionStringName));
            }

            string            connectionString = model.ConnectionString;
            string            providerName     = model.ProviderName;
            Database          db = new SqlServerDatabase(connectionString);
            DbProviderFactory providerFactory = null;

            if (string.IsNullOrEmpty(providerName))
            {
                return(db);
            }

            //if (css.ProviderName == "System.Data.OleDb")
            //{
            //    providerFactory = OleDbFactory.Instance;
            //}
            //else
            //{
            //    providerFactory = DbProviderFactories.GetFactory(css.ProviderName);
            //}
            //if (providerFactory == null) throw new Exception(string.Format(Resources.Data.DataProviderNotFound, css.ProviderName));

            switch (providerName)
            {
            //case "System.Data.SqlClient":
            //    break;
            case "System.Data.Odbc":
                db = new OdbcDatabase(connectionString);
                break;

            case "System.Data.OleDb":
                db = new OleDbDatabase(connectionString);
                break;

            case "System.Data.SQLite":
                providerFactory = DbProviderFactories.GetFactory(providerName);
                db = new SQLiteDatabase(connectionString, providerFactory);
                break;

            case "MySql.Data.MySqlClient":
                providerFactory = DbProviderFactories.GetFactory(providerName);
                db = new MySqlDatabase(connectionString, providerFactory);
                break;

            case "IBM.Data.DB2":
                providerFactory = DbProviderFactories.GetFactory(providerName);
                db = new DB2Database(connectionString, providerFactory);
                break;

            case "FirebirdSql.Data.FirebirdClient":
                providerFactory = DbProviderFactories.GetFactory(providerName);
                db = new FirebirdDatabase(connectionString, providerFactory);
                break;

            default:
                break;
            }

            return(db);
        }
예제 #33
0
 public string CreateSelectSql(DbType dbType, ValueKind kind) => SqlServerDatabase.CreateSelectSql(dbType, kind);
예제 #34
0
 private void ConfigureDatabase()
 {
     database = new SqlServerDatabase(SqlConnectionFactory.Create(Configuration));
 }