コード例 #1
0
        /// <summary>
        /// Inserts the specified data, returning primary key as designated type.
        /// </summary>
        /// <typeparam name="T">The type of the returned primary key</typeparam>
        /// <param name="data">The data.</param>
        /// <returns>Primary key</returns>
        public T Insert <T>(DbTestTableData data)
        {
            var dbi = new DbTestInsert <T>(_connectionString, data);

            _inserted.Add(dbi);
            return(dbi.PrimaryKey);
        }
コード例 #2
0
        /// <summary>
        /// Retrieves a row of data from a table.
        /// </summary>
        /// <param name="tableName">The table name.</param>
        /// <param name="keyValue">The key value.</param>
        /// <param name="columnNames">The columns you want returned (null means ALL).</param>
        /// <param name="keyColumnName">Name of the key column (usually the primary key).</param>
        public DbTestTableData Retrieve(string tableName, object keyValue, IEnumerable <string> columnNames = null, string keyColumnName = null)
        {
            const string SelectTemplate = "select {0} from dbo.{1} where {2} = {3}";

            var tableData = new DbTestTableData(tableName);

            if (keyColumnName == null)
            {
                keyColumnName = tableName.Substring(0, tableName.Length - 2) + "Id";
            }

            var columns         = columnNames == null ? "*" : string.Join(",", columnNames);
            var selectStatement = string.Format(SelectTemplate, columns, tableName, keyColumnName, keyValue);

            using (var connection = new SqlConnection(_connectionString))
            {
                connection.Open();

                var cmd    = new SqlCommand(selectStatement, connection);
                var reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    tableData.AddRange(
                        Enumerable.Range(0, reader.FieldCount)
                        .Select(i => new DbTestColumnData <object>(reader.GetName(i), reader[i])));
                }

                reader.Close();
            }

            return(tableData);
        }
コード例 #3
0
            /// <summary>
            /// Initializes a new instance of the <see cref="DbTestInsert{T}"/> class.
            /// </summary>
            /// <param name="connectionString">The connection string.</param>
            /// <param name="testData">The test data.</param>
            public DbTestInsert(string connectionString, DbTestTableData testData)
            {
                _connectionString = connectionString;
                using (var connection = new SqlConnection(connectionString))
                {
                    connection.Open();

                    var cmd = testData.GenerateSqlInsertCommand();
                    cmd.Connection   = connection;
                    _primaryKey      = (T)cmd.ExecuteScalar();
                    _deleteStatement = string.Format(DeleteTemplate, testData.TableName, testData.PrimaryKey, _primaryKey);
                }
            }
コード例 #4
0
 /// <summary>
 /// Inserts the specified data, returning primary key as decimal.
 /// </summary>
 /// <param name="data">The data.</param>
 /// <returns>Primary key, using default type decimal</returns>
 public decimal Insert(DbTestTableData data)
 {
     return(Insert <decimal>(data));
 }