コード例 #1
0
ファイル: MyORM.cs プロジェクト: ciker/simple_orm
        public int Delete <T>(object id) where T : class, new()
        {
            OrmMap map            = mappingPool[typeof(T)];
            string whereStatement = String.Format("{0}=@id", map.ID);

            string deleteQuery = map.BuildDeleteQuery(whereStatement);

            using (DbConnection connection = GetOpenConnection())
            {
                DbCommand command = connection.CreateCommand();
                command.CommandText = deleteQuery;

                DbParameter param = command.CreateParameter();
                param.DbType        = map.GetDbType(map.ID);
                param.ParameterName = "@id";
                param.Value         = id;
                command.Parameters.Add(param);

                return(command.ExecuteNonQuery());
            }
        }
コード例 #2
0
ファイル: MyORM.cs プロジェクト: ciker/simple_orm
        public int Insert(object o)
        {
            Type          type           = o.GetType();
            OrmMap        map            = mappingPool[type];
            StringBuilder argListBuilder = new StringBuilder();
            List <KeyValuePair <string, string> > colNameToNamedParam = new List <KeyValuePair <string, string> >();

            foreach (string col in map.Columns)
            {
                string namedParam = '@' + col;
                colNameToNamedParam.Add(new KeyValuePair <string, string>(col, namedParam));
                argListBuilder.Append(namedParam);
                argListBuilder.Append(',');
            }
            argListBuilder.Remove(argListBuilder.Length - 1, 1);

            string insertQuery = map.BuildInsertQuery(argListBuilder.ToString());

            using (DbConnection connection = GetOpenConnection())
            {
                DbCommand command = connection.CreateCommand();
                command.CommandText = insertQuery;
                foreach (var pair in colNameToNamedParam)
                {
                    DbParameter param = command.CreateParameter();
                    param.DbType        = map.GetDbType(pair.Key);
                    param.ParameterName = pair.Value;
                    param.Value         = map[pair.Key].GetValue(o) ?? DBNull.Value;
                    command.Parameters.Add(param);
                }
                try
                {
                    return(command.ExecuteNonQuery());
                }
                catch (Exception e)
                {
                    return(0);
                }
            }
        }
コード例 #3
0
ファイル: MyORM.cs プロジェクト: ciker/simple_orm
        public T SelectById <T>(object id) where T : class, new()
        {
            OrmMap map            = mappingPool[typeof(T)];
            string whereStatement = String.Format("{0}=@id", map.ID);
            string selectQuery    = map.BuildSelectWhereQuery(whereStatement);

            using (DbConnection connection = GetOpenConnection())
            {
                DbCommand command = connection.CreateCommand();
                command.CommandText = selectQuery;

                DbParameter param = command.CreateParameter();
                param.DbType        = map.GetDbType(map.ID);
                param.ParameterName = "@id";
                param.Value         = id;
                command.Parameters.Add(param);

                DbDataReader    reader  = command.ExecuteReader();
                DbReaderAdapter adapter = new DbReaderAdapter(reader, map);
                return(adapter.GetSingleResult <T>());
            }
        }