[Ms-Sql] DateAdd 함수

About DataBase 2009. 3. 20. 15:23 posted by 무명시인
SELECT CONVERT(CHAR(10), GETDATE(),120)
-- : 2009-01-01
SELECT CONVERT(CHAR(10), DATEADD(M, 6, GETDATE()), 120)
-- : 2009-07-01

dateadd(Type, Add, Date)

 -->>   Date 시간에 원하는 시간을 더해서 반환

    Type
        year , yy, y
        month, m, mm
        day, d, dd
        week, w, wk
        hour, hh
        minute, m
        second, s, ss
        millisecond, ms

    Add

        Type 에 따른 값. dateadd(year, 1  입력시  1년 추가.

    Date 추가할 기준 시간

        2008-10-10  or 2008-10-10 20:00:00  의  datetime or smalldatetime 형식



상위 클래스에서 meta, css, js, title 등록

.Net 2009. 3. 19. 11:37 posted by 무명시인

요즘 공통 모쥴 작업을 하다보니//

페이지 클래스의 상위 클래스( basepage, base..등등으로 명명지어지는) 에서

meta tag, css, js, title 등등이 동적으로 변경되어져야 하는 경우가 생기더라..

그래서..

결국

다음과 같이..

OnInit 이벤트시 요렇고럼..

protected override void OnInit(EventArgs e)
    {
        // 메타 태그 등록
        if (this.Header != null)
        {
            HtmlMeta metaTag1 = new HtmlMeta();

            metaTag1.Name = "keywords";            
            metaTag1.Content = "1,2,3,4,5,6";

            Header.Controls.Add(metaTag1);

            HtmlMeta metaTag2 = new HtmlMeta();
            metaTag2.Name = "description";
            metaTag2.Content = "여행,투어,tour,여행사,해외여행,국내여행";

            Header.Controls.Add(metaTag2);
        }

        // Title 등록
        if (this.Header != null)
        {
            this.Header.Title = "상위 클래스에서 헤더를 등록";
        }

        // script 블럭 등록
        if (this.Header != null)
        {
            string strScript = String.Format("", Request.ServerVariables["HTTP_HOST"]);
            
            //이방법은 바디안에 등록
            //Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Block", strScript);            
            //헤더에 문자열로 쓴다.
            Page.Header.InnerHtml = strScript;
        }
        
        // css 등록
        if (this.Header != null)
        {
            string strCss = String.Format("", Request.ServerVariables["HTTP_HOST"]);
            this.Header.InnerHtml = strCss;
        }        
       
        base.OnInit(e);
    }

Meta Tag 정리

雜物 2009. 3. 19. 11:30 posted by 무명시인

meta 태그에는 name, content, http-equiv 3가지 속성이 있다.

<meta name="Subject" content=""> //홈페이지 주제
<meta name="Title" content=""> //제목
<meta name="Keywords" content=""> //키워드
<meta name="Description" content=""> //요약설명
<meta name="Author" content=""> //제작자
<meta name="Publisher" content=""> //제작사
<meta name="Other Agent" content=""> //웹책임자
<meta name="Claasification" content=""> //카테고리위치,분류
<meta name="Generator" content=""> //제작도구
<meta name="Reply-To" content=""> //메일주소
<meta name="Email" content=""> //메일주소
<meta name="Filename" content=""> //파일이름
<meta name="Author-Date" content=""> //제작일
<meta name="Date" content=""> //제작일
<meta name="Location" content=""> //위치
<meta name="Distribution" content=""> //배포자
<meta name="Copyright" content=""> //저작권
<meta name="Robots" content="ALL">
<meta name="Robots" content="index,follow"> //이 문서도 긁어가고 링크된 문서도 긁어감
<meta name="Robots" content="noindex,follow"> //이 문서는 긁어가지 말고 링크된 문서만 긁어감
<meta name="Robots" content="index,nofollow"> //이 문서는 긁어가고 링크는 무시함
<meta name="Robots" content="noindex,nofollow"> //이 문서도 긁지 않고 링크도 무시함

<meta http-equiv="Content-Type" content="text/html; charset=euc-kr"> //웹문서 언어 설정
<meta http-equiv="Imagetoolbar" content="no"> //그림위에 마우스 오버시 이미지 관련 툴바 숨김
<meta http-equiv="Refresh" content="60"> //60초 마다 새로고침
<meta http-equiv="Refresh" ccontent="5;url=주소"gt; //주소로 5초후 이동
<meta http-equiv="Cash-Control" content="no-cache"> //캐쉬가 되지 않게
<meta http-equiv="Last-Modified" content="Mon,20 Jul 2008 19:30:30"> //최종 수정일
<meta http-equiv="Pragma" content="no-cache"> //캐쉬가 되지 않게
<meta http-equiv="Expires" content="Mon, 08 Sep 2003 10:10:10 GMT">"> //캐쉬 만료(파기)일
<meta http-equiv="Page-Enter" content="revealtrans(Duration=1,Transition=12)">

//페이지 들어갈때 트랜지션 효과(장면 전환 효과)
<meta http-equiv="Page-Exit" content="revealtrans(Duration=1,Transition=12)">

//페이지 나갈때 트랜지션 효과(장면 전환 효과)

장면 전환 효과 속성값
Box out : 네모난 박스가 안쪽에서 바깥쪽으로
Circle in : 원이 바깥에서 안쪽으로
Circle out : 원이 안쪽에서 바깥쪽으로
Wipe up : 이미지의 아래에서 위쪽으로 수직 이동
Wipe down : 이미지의 위에서 아래쪽으로 수직 이동
Wipe right : 이미지의 왼쪽에서 오른쪽으로 수평 이동
Wipe left : 이미지의 오른쪽에서 왼쪽으로 수평 이동
Vertical blinds : 수직 블라인드가 쳐지는 형태로 변환
Horizontal blinds : 수평 블라인드가 쳐지는 형태로 변환
Checkerboard across : 바둑판 형태의 격자가 왼쪽에서 오른쪽으로 생성
Checkerboard down : 바둑판 형태의 격자가 위에서 아래로 생성
Random dissove : 안개와 비슷한 형태로 변환
Split vertical in : 왼쪽과 오른쪽 끝에서 중앙으로 수직 이동
Split vertical out : 중앙에서 양쪽 끝으로 수직 이동
Split Horizontal in : 양쪽에서 중앙으로 수평 이동
Split Horizontal out : 중앙에서 양쪽끝으로 수직 이동
Strips left down : 대각선 형태로 오른쪽 상단에서 왼쪽 하단으로 이동
Strips left up : 대각선 형태로 오른쪽 하단에서 왼쪽 상단으로 이동
Strips right down : 대각선 형태로 왼쪽 상단에서 오른쪽 하단으로 이동
Strips right up : 대각선 형태로 왼쪽 하단에서 오른쪽 상단으로 이동
Random bars horizontal : 수평선이 무작위로 생성
Random bars vertical : 수직선이 무작위로 생성
Random : 임의로 생성

마스터 페이지 동적 변경

.Net 2009. 3. 16. 18:43 posted by 무명시인
사용자 삽입 이미지


















1. app_code 폴더에 상위 클래스를 구성합니다.
    테스트 용으로 마스터 3개와 aspx 페이지 한개를 생성합니다.


사용자 삽입 이미지

2. 클래서는 System.Web.UI.Page 를 상속 받습니다.
   동적으로 마스터를 변경할수 있는 이벤트는 OnPreInit 뿐입니다.
   상속받은 이벤트 안에 위와 같이 코딩을 합니다.

3. aspx 페이지를 다음과 같이 구성합니다.

사용자 삽입 이미지
4. 자 테스트를 해볼까요??

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

5. m 이라는 파라미터가 바뀔때마다 마스터 페이지가 바뀜니다.
   마스터 페이지 안에는 0번마스터 1번~, 2번~ 이렇게 코딩이 되어 있지요..

  




네이버 블로그 같은 스킨 변경

.Net 2009. 3. 16. 18:00 posted by 무명시인

** 요점은 타입별로 사용자 정의 컨트롤(*.ascx)을 로드한다는데 있다.

우선 두가지의 ascx 를 생성한다.

Ex) TypeA.ascx , TypeB.ascx

*.aspx 는 다음과 같이 구성을 한다.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Controls_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>제목 없음</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <table>
                <tr>
                    <td id="content" runat="server">
                    </td>
                </tr>
            </table>
            <hr />
            <div id="divContent" runat="server">
            </div>
        </div>
    </form>
</body>
</html>

*.aspx.cs 는 다음과 같이 구성을 한다.

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Controls_Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Control ctlA = new Control();

        ctlA = this.Page.LoadControl("TypeA.ascx");  //ascx 로드

        this.content.Controls.Add(ctlA);//테이블 삽입

        Control ctlB = new Control();

        ctlB = this.Page.LoadControl("TypeB.ascx");

        this.divContent.Controls.Add(ctlB); //div 삽입
    }
}


**  모든 컨트롤에 Add 가 되는 것은 아니었다.  일반적으로 컨테이너의 역활을 하는 컨트롤들(Table, div....)에만

동적으로 ascx 를 로드해서 삽입할수가 있다.


window.onload() 이벤트

Js & Css 2009. 3. 16. 12:00 posted by 무명시인
<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
    <title></title>
    <script type="text/javascript" language="javascript">
    function window.onload()
    {
  document.write('window.onload()');
    }
    </script>
</head>
<body>
  
    <div>
   
    </div>
  
</body>
</html>

한마디로..

온로드시 이벤트..

서버변수를 알아보자//

.Net 2009. 3. 13. 15:27 posted by 무명시인
Request.ServerVariables['key'] 로 값을 가져올수있는 컬렉션 목록입니다..
Key Value
ALL_HTTP HTTP_CONNECTION:Keep-Alive HTTP_ACCEPT:*/* HTTP_ACCEPT_ENCODING:gzip, deflate HTTP_ACCEPT_LANGUAGE:ko HTTP_HOST:localhost HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
ALL_RAW Connection: Keep-Alive Accept: */* Accept-Encoding: gzip, deflate Accept-Language: ko Host: localhost User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
APPL_MD_PATH /LM/w3svc/1/ROOT/Web
APPL_PHYSICAL_PATH D:\NetV20\Web\
AUTH_TYPE
AUTH_USER
AUTH_PASSWORD
LOGON_USER
REMOTE_USER
CERT_COOKIE
CERT_FLAGS
CERT_ISSUER
CERT_KEYSIZE
CERT_SECRETKEYSIZE
CERT_SERIALNUMBER
CERT_SERVER_ISSUER
CERT_SERVER_SUBJECT
CERT_SUBJECT
CONTENT_LENGTH 0
CONTENT_TYPE
GATEWAY_INTERFACE CGI/1.1
HTTPS off
HTTPS_KEYSIZE
HTTPS_SECRETKEYSIZE
HTTPS_SERVER_ISSUER
HTTPS_SERVER_SUBJECT
INSTANCE_ID 1
INSTANCE_META_PATH /LM/W3SVC/1
LOCAL_ADDR 127.0.0.1
PATH_INFO /Web/NET/ServerVariable.aspx
PATH_TRANSLATED D:\NetV20\Web\NET\ServerVariable.aspx
QUERY_STRING
REMOTE_ADDR 127.0.0.1
REMOTE_HOST 127.0.0.1
REMOTE_PORT 2763
REQUEST_METHOD GET
SCRIPT_NAME /Web/NET/ServerVariable.aspx
SERVER_NAME localhost
SERVER_PORT 80
SERVER_PORT_SECURE 0
SERVER_PROTOCOL HTTP/1.1
SERVER_SOFTWARE Microsoft-IIS/5.1
URL /Web/NET/ServerVariable.aspx
HTTP_CONNECTION Keep-Alive
HTTP_ACCEPT */*
HTTP_ACCEPT_ENCODING gzip, deflate
HTTP_ACCEPT_LANGUAGE ko
HTTP_HOST localhost
HTTP_USER_AGENT Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)






protected Table Table1;
 private NameValueCollection coll;

 private void Page_Load(object sender, System.EventArgs e)
 {
  coll = Request.ServerVariables;
  String[] arrKeys = coll.AllKeys;

  SPList.Text = "<table width='100%' border='1' cellSpacing='0' cellPadding='5'>";
        SPList.Text += "<tr><td>Key</td><td>Value</td></tr>";

  for (int i = 0; i < arrKeys.Length; i++)
  {
            String[] arrVals = coll.GetValues(arrKeys[i]);

            SPList.Text += "<tr><td>" + arrKeys[i] + "</td>";
            SPList.Text += "<td>";

   for (int j = 0; j < arrVals.Length; j++)
   {
    SPList.Text += arrVals[j] + "<br />";
   }

   SPList.Text += "</td></tr>";
  }

  SPList.Text += "</table>";
 }

[JS] 자기창 닫기 ver 2

Js & Css 2009. 1. 12. 18:00 posted by 무명시인
            System.Text.StringBuilder sb = new System.Text.StringBuilder();

            sb.Append("<script>");
            sb.Append(" alert('파일이 없습니다.');");
            sb.Append(" var appVer=navigator.appVersion.substring(25,22);");
            sb.Append(" if(appVer==\"5.5\" || appVer==\"6.0\")");// 버전이 6.0 이거나 5.5 일때
            sb.Append(" {  ");           
            sb.Append("     self.opener=self;");
            sb.Append("     self.close();");
            sb.Append(" }  ");
            sb.Append(" else if ( appVer == \"7.0\" || appVer==\"8.0\") ");// 7.0 일때
            sb.Append(" {");
            sb.Append("     top.window.opener = top;");
            sb.Append("     top.window.open('','_parent', '');");
            sb.Append("     top.window.close();");
            sb.Append(" }");
            sb.Append("</script>");

[Ajax] 파일 다운로드

.Net 2009. 1. 9. 14:26 posted by 무명시인

//파일다운로드
function fileUrl(fileUrl) {

    //요청 URL + 입력텍스트 값
    var Url = "BBC001D.aspx?Checkform=FileOpen&param=" + fileUrl;
   
    //XML Request 객체 선언및 Open
    var xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
    xmlRequest.open("POST", Url, false);

    //헤더값 설정
    xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    //요청
    xmlRequest.send(null);

    if (xmlRequest.ResponseText == "false") {
        alert("파일이 존재하지 않습니다.");
        return false;
    }
    __doPostBack('lnkBtnShow', '');
    location.href = xmlRequest.ResponseText;
   
}

#region ## Page_Load ##

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["Checkform"] == null) return;

        string strCheckform = Request.QueryString["Checkform"].ToString();
        string strStrID = Request.QueryString["param"].ToString();

        if (strCheckform.ToString().Equals("FileOpen")) FileCheck(strStrID);
    }

    #endregion

    #region ## FileCheck ##

    /// <summary>
    /// 파일 다운로드
    /// - 작  성  자 : 최성춘 (주)정원엔시스템
    /// - 최초작성일 : 2008.10.30
    /// - 최초수정자 :
    /// - 최초수정일 :
    /// - 주변경로그 :
    /// - 작업  내용 :
    /// </summary>
    private void FileCheck(string strStrID)
    {
        string[] strBoard = strStrID.ToString().Split('|');

        BBC001S obj = new BBC001S();

        DataSet ds = obj.GetBoardFileSelect(strBoard);

        bool blnFileExists = File.Exists(Server.MapPath(ds.Tables[0].Rows[0]["FilePath"].ToString()));

        if (blnFileExists)
        {           
            string[] arrExt = ds.Tables[0].Rows[0]["FilePath"].ToString().Split('.');

            if (arrExt[1].ToString().ToLower().Equals("gif")
                || arrExt[1].ToString().ToLower().Equals("jpg"))
            {
                Response.Redirect(ds.Tables[0].Rows[0]["FilePath"].ToString());
            }
            else
            {
                Response.Write(ds.Tables[0].Rows[0]["FilePath"].ToString());
            }

            Response.Flush();
            Response.End();           
        }
        else
        {       
            Response.Write("false");                       
            //Response.Redirect("Default.aspx");
        }
    }

    #endregion


아작스 포스트로 화일정보 넘겨주고 뿌려주기

INI

.Net 2008. 12. 22. 09:05 posted by 무명시인
// 클레스
using System;
using System.Text;
using System.IO;
using System.Runtime.InteropServices;
namespace IniFile
{
    /// <summary>
    ///     TIniFile
    ///     Window INI 파일을 다루기 위한 클레스
    ///
    /// </summary>
    public class TIniFile
    {
        /// <summary>
        /// ini 파일명을 저장
        /// </summary>
        private string INIFileName;

        /// <summary>
        ///     ini  파일을 지정하거나 가져올때 쓰는 속성
        /// </summary>
        public string FileName
        {
            get { return INIFileName; }
            set { INIFileName = value; }
        }
        /// <summary>
        /// 생성자 : 사용할 ini 파일을 지정
        /// </summary>
        /// <param name="FileName">사용할 파일명</param>
        public TIniFile(string FileName)
        {
            INIFileName = FileName;
        }
        /// <summary>
        /// ini 파일에서 정보를 가져오기 위한 API 기초 함수
        /// </summary>
        [DllImport("kernel32.dll")]
        private static extern int GetPrivateProfileString(
                    string section,
                    string key,
                    string def,
                    StringBuilder retVal,
                    int size,
                    string filePath);
        /// <summary>
        /// ini 파일에서 정보를 쓰기위한 위한 API 기초 함수
        /// </summary>
        [DllImport("kernel32.dll")]
        private static extern long WritePrivateProfileString(
                    string section,
                    string key,
                    string val,
                    string filePath);
        /// <summary>
        /// ini 파일에 정보를 기록하기 위한 함수
        /// </summary>
        /// <param name="Section">섹션명</param>
        /// <param name="Key">키 명</param>
        /// <param name="Value">기록할 값</param>
        private void _IniWriteValue(string Section, string Key, string Value)
        {
            WritePrivateProfileString(Section, Key, Value, INIFileName);
        }
        /// <summary>
        /// ini 파일에 정보를 가져오기 위한 함수
        /// </summary>
        /// <param name="Section">섹션명</param>
        /// <param name="Key">키 명</param>
        /// <returns>가져온 값</returns>
        private string _IniReadValue(string Section, string Key)
        {
            StringBuilder temp = new StringBuilder(2000);
            int i = GetPrivateProfileString(Section, Key, "", temp, 2000, INIFileName);
            return temp.ToString().Trim();
        }
        /// <summary>
        /// 문자열 타입으로 값을 기록한다
        /// </summary>
        /// <param name="Section">섹션명</param>
        /// <param name="Key">키 명</param>
        /// <param name="Value">기록 할 문자열</param>
        public void SetString(string Section, string Key, string Value)
        {
            _IniWriteValue(Section, Key, Value.Trim());
        }
        /// <summary>
        /// 정수 타입으로 값을 기록한다
        /// </summary>
        /// <param name="Section">섹션명 </param>
        /// <param name="Key">키 명</param>
        /// <param name="Value">기록 할  정수값</param>
        ///
        public void SetInteger(string Section, string Key, int Value)
        {
            _IniWriteValue(Section, Key, Value.ToString().Trim());
        }
        /// <summary>
        /// 논리 타입으로 값을 기록 한다.
        /// </summary>
        /// <param name="Section">섹션명</param>
        /// <param name="Key">키 명</param>
        /// <param name="Value">기록 할 논리 값</param>
        public void SetBoolean(string Section, string Key, bool Value)
        {
            _IniWriteValue(Section, Key, Value ? "1" : "0");
        }
        /// <summary>
        /// 논리 타입으로 값을 가져온다
        /// </summary>
        /// <param name="Section">섹션명</param>
        /// <param name="Key">키 값</param>
        /// <param name="def">기본값</param>
        /// <returns>가져온 논리값</returns>
        public bool GetBoolean(string Section, string Key, bool def)
        {
            bool temp = def;
            string stTemp = _IniReadValue(Section, Key);
            if (stTemp == "") return def;
            if (stTemp.Trim() == "1") return true;
            else return false;
        }
        /// <summary>
        /// 문자열로 값을 가져 온다
        /// </summary>
        /// <param name="Section">섹션명</param>
        /// <param name="Key">키 명</param>
        /// <returns>가져온 문자열</returns>
        public string GetString(string Section, string Key)
        {
            return _IniReadValue(Section, Key).Trim();
        }
        /// <summary>
        /// 정수 타입으로 값을 가져 온다
        /// </summary>
        /// <param name="Section">섹션명</param>
        /// <param name="Key">키 명</param>
        /// <param name="def">기본값</param>
        /// <returns>가져온 정수값</returns>
        public int GetInteger(string Section, string Key, int def)
        {
            int temp = def;
            string stTemp = _IniReadValue(Section, Key);
            if (stTemp == "") return def;
            try
            {
                temp = int.Parse(stTemp.Trim());
            }
            catch (Exception)
            {
                return def;
            }
            return temp;
        }
    }
}

 
// 사용법 예
TIniFile ini = new TIniFile(Path.ChangeExtension(Application.ExecutablePath, ".ini"));
string value = ini.GetString("setup","DBConnationString");
 
 
 
 
// ini 내부
[setup]
DBConnationString = 연결문자열
 
<< prev 1 ··· 10 11 12 13 14 15 16 ··· 18 next >>