GSI

[web.config 쪽에 해당 내용 추가]
 <appSettings>
  <add key="DSN" value="Data Source=dev.iamgsi.com,1433;Initial Catalog=testdb;user id=test;Password=test;"/>
 </appSettings>

[DB 처리 클래스]
using System;
using System.Collections.Generic;
using System.Web;
using System.IO;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace WebApplication1
{
    public class GDBCon
    {
        private int mCount = 0;
        private SqlConnection mDbConn = null;
        private SqlCommand mCmd = null;
        private SqlDataReader mReader = null;
        StringBuilder sb = new StringBuilder();

        /* DataBase Connection Open */
        public void DbConn()
        {
            try
            {
                mDbConn = new SqlConnection(GetDSN);
                mDbConn.Open();
            }
            catch (Exception e)
            {
                DbErrorMsg(e.Source, e.Message, e.StackTrace, "DataBase Open 실패");
            }
        }

        // 연결문자열을 위한 Property
        protected string GetDSN
        {
            get
            {
                // 밑에 구문이 web.config 에 있는 AppSettings
                return System.Configuration.ConfigurationSettings.AppSettings["BoardDSN"];
            }
        }
       
        /* DataBase Connection Close */
        public void DbClose()
        {
            if (mDbConn == null)
            {
                return;
            }

            try
            {
                if (mDbConn.State.ToString() == "Open")
                {
                    mDbConn.Close();
                }
            }
            catch (Exception e)
            {
                DbErrorMsg(e.Source, e.Message, e.StackTrace, "DataBase Close 실패");
            }
        }

        /* DataBase Transaction Init */
        public void InitTransaction(string TransName)
        {
            try
            {
                mCmd = new SqlCommand();
                mCmd.Connection = mDbConn;
                mCmd.Transaction = mDbConn.BeginTransaction(IsolationLevel.ReadCommitted, TransName);
            }
            catch (Exception e)
            {
                DbErrorMsg(e.Source, e.Message, e.StackTrace, "Trancsaction Open 실패");
            }
        }

        /* Transaction Execute Query */
        public void ExecuteTransaction(string[] QueryArr)
        {
            try
            {
                foreach (string Query in QueryArr)
                {
                    mCmd.CommandText = Query;
                    mCmd.ExecuteNonQuery();
                }
                mCmd.Transaction.Commit();

            }
            catch (Exception e)
            {
                mCmd.Transaction.Rollback();
                DbErrorMsg(e.Source, e.Message, e.StackTrace, "Trancsaction Commit 실패");
            }
        }


        /* Query Execute */
        public void ExecuteQuery(string Query)
        {
            try
            {
                mCmd = new SqlCommand(Query, mDbConn);
                mCmd.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                DbErrorMsg(e.Source, e.Message, e.StackTrace, Query);
            }
        }

        /* SQL DataReader Fatech Query */
        public SqlDataReader FatechQuery(string Query)
        {
            try
            {
                mCmd = new SqlCommand(Query, mDbConn);
                mReader = mCmd.ExecuteReader();
            }
            catch (Exception e)
            {
                DbErrorMsg(e.Source, e.Message, e.StackTrace, Query);
            }
            return mReader;
        }

        /* SQL DataReader Close */
        public void ReaderClose()
        {
            try
            {
                if (!mReader.IsClosed)
                {
                    mReader.Close();
                }
            }
            catch (Exception e)
            {
                DbErrorMsg(e.Source, e.Message, e.StackTrace, "SQLReader Close 실패");
            }
        }

        /* Procedure Execute */
        public int ExecuteProc(string ProcName, IDataParameter[] parameters)
        {
            int Result = 0;
            try
            {
                SqlCommand Cmd = BuildIntCommand(ProcName, parameters);
                Cmd.ExecuteNonQuery();
                Result = (int)Cmd.Parameters["ReturnValue"].Value;
            }
            catch (Exception e)
            {
                DbErrorMsg(e.Source, e.Message, e.StackTrace, "Procedure ExecuteProc Error");
            }
            return Result;
        }

        /* SQL DataReader Fatech Procedure */
        public SqlDataReader FatechProc(string ProcName, IDataParameter[] parameters)
        {
            SqlCommand Cmd = BuildProcCommand(ProcName, parameters);
            try
            {
                Cmd.CommandType = CommandType.StoredProcedure;
                mReader = Cmd.ExecuteReader();
            }
            catch (Exception e)
            {
                DbErrorMsg(e.Source, e.Message, e.StackTrace, "Procedure FatechProc Error");
            }
            return mReader;
        }

        /* Execute Query DateSet */
        public DataSet ExecuteDataSet(string Query, string TableName, int StartRecord, int PageSize)
        {
            DataSet mDataSet = new DataSet();
            try
            {
                SqlDataAdapter mDataAdapter = new SqlDataAdapter(Query, mDbConn);
                mDataAdapter.Fill(mDataSet, StartRecord, PageSize, TableName);
            }
            catch (Exception e)
            {
                DbErrorMsg(e.Source, e.Message, e.StackTrace, Query);
            }

            return mDataSet;
        }

        /* Execute Procedure DateSet */
        public DataSet ExecuteProcDataSet(string ProcName, IDataParameter[] parameters, string TableName, int StartRecord, int PageSize)
        {
            DataSet mDataSet = new DataSet();
            SqlDataAdapter mDataAdapter = new SqlDataAdapter();

            mDataAdapter.SelectCommand = BuildProcCommand(ProcName, parameters);
            try
            {
                mDataAdapter.Fill(mDataSet, StartRecord, PageSize, TableName);
            }
            catch (Exception e)
            {
                DbErrorMsg(e.Source, e.Message, e.StackTrace, "Procedure ExecuteProcDataSet Error");
            }

            return mDataSet;
        }

        /* Total Count Function */
        public int TotalQuery(string Query)
        {
            try
            {
                mCmd = new SqlCommand(Query, mDbConn);
                mCount = (int)mCmd.ExecuteScalar();
            }
            catch (Exception e)
            {
                DbErrorMsg(e.Source, e.Message, e.StackTrace, Query);
            }
            return mCount;
        }

        /* Procedure BuildIntCommand */
        protected SqlCommand BuildIntCommand(string ProcName, IDataParameter[] parameters)
        {
            SqlCommand Cmd = BuildProcCommand(ProcName, parameters);

            try
            {
                Cmd.Parameters.Add(new SqlParameter("ReturnValue",
                 SqlDbType.Int,
                 4, /* Size */
                 ParameterDirection.ReturnValue,
                 false, /* is nullable */
                 0, /* byte precision */
                 0, /* byte scale */
                 string.Empty,
                 DataRowVersion.Default,
                 null));
            }
            catch (Exception e)
            {
                DbErrorMsg(e.Source, e.Message, e.StackTrace, "Procedure BuildIntCommand Error");
            }

            return Cmd;
        }

        /* Procedure Parameter Build */
        protected SqlCommand BuildProcCommand(string ProcName, IDataParameter[] parameters)
        {
            try
            {
                mCmd = new SqlCommand(ProcName, mDbConn);
                mCmd.CommandType = CommandType.StoredProcedure;

                foreach (SqlParameter parameter in parameters)
                {
                    mCmd.Parameters.Add(parameter);
                }
            }
            catch (Exception e)
            {
                DbErrorMsg(e.Source, e.Message, e.StackTrace, "Procedure BuildProcCommand Error");
            }

            return mCmd;
        }

        /* Error Message Print */
        public void DbErrorMsg(string ErrSource, string ErrMsg, string stack, string Query)
        {
            DbClose();
            string ErrorMsg = "Error Souce =" + ErrSource + "<br>"
             + "Error Message = <font color='red'><b>" + ErrMsg + "</b></font><br>"
             + "Stack = " + stack + "<br><br>"
             + "Query = <font color='blue'><b>" + Query + "</b></font>";
            System.Web.HttpContext.Current.Response.Write(ErrorMsg);
            System.Web.HttpContext.Current.Response.End();
        }
    }
}

Posted by gsi
:


돈을 표시할때 세자리 마다 콤마를 표시 할려고 할때 좀 삽질을 많이 했다.
BoundField 이걸 사용해서 바로 하기 위해서

DataFormatString="{0:n0}"    // 출력 : 1,000,000

를 사용하면 제대로 표시가 된다.

이거 말고 아래와 같이 사용하면 소수점도 표시가 되는거 같다.

DataFormatString="{0:n}"    // 출력 : 1,000,000.00
Posted by gsi
:


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function child() {
            window.open("Default2.aspx");
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input id="Text1" type="text" />
        <div>
            <input id="Button1" type="button" value="button" onclick="child()" />
        </div>
    </div>
    </form>
</body>
</html>
 
그리고 자식창 소스... Default2.aspx
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function test() {
            var ctbox = document.getElementById("Text1");
            var ptbox = parent.opener.document.getElementById("Text1");
            ptbox.value = ctbox.value;
            window.close();            
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input id="Text1" type="text" />     
       
    </div>
    <div>
        <input id="Button1" type="button"
            value="button" onclick="test()" />
        </div>
    </form>
</body>
</html>
Posted by gsi
:


asp.net을 하면서 폼간의 데이터 전송에 있어서 asp, php와 다르게 form 에 post만 해서는 안되는걸 알았다.

Request.Form 이걸 사용해서 값은 가져 오지만. 값이 넘어 오질 않았다.
그래서 확인해본 결과 "PostBackUrl 을 사용해야 했다.

아래의 그림에서와 같이 해당 페이지를 이동시키는 객체인 버튼의 속성에서 PostBackUrl에 이동하는
웹 페이지 링크를 설정해 주면 form 데이터가 전달되게 됩니다.

Posted by gsi
:

방명록 기본 코드

이름, 이메일, 컨텐츠, 비밀번호, 입력날짜, 입력 IP로 구성된 심플 방명록이다.
DB에 Insert 하는 것과 Select로 GridView에 추가 하는 내용이 포함되어 있다.

DB 쿼리 기본 내용

cs 기본 파일

Posted by gsi
:

애플리케이션 카운터 설정 및 세션 카운터 설정 방법
애플리케이션은 현재 애플리케이션이 생성된 때부터 카운터 되는 고유한 값이다.
세션 카운터는 접속한 사용자에 따라서 다르게 나타나는 카운터 값이다.
** 이때 애플리케이션 및 세션 카운터를 초기화를 해주고 싶다면 Global.aspx 에서 제공된 메소드에서
    처리해야 한다.

cs 기본 파일

Posted by gsi
:

단순하게 이름, 이메일, 타이틀, 입력날짜, 입력 IP 등을 입력 받는 게시판입니다.

Asp.Net에서 사용하는 DB 관련 기본 코드 입니다.
1. DB를 생성하고 6개의 기능별 요악한 쿼리 파일
2. DB의 내용을 입력하는 코드
3. DB의 내용을 가져와서 DataGrid에 뿌려주는 코드

DB 기본 쿼리 파일

cs 기본 파일

Posted by gsi
:


단순하게 고객 이름, 이메일, 패스워드 등을 입력 받는 게시판입니다.

Asp.Net에서 사용하는 DB 관련 기본 코드 입니다.
1. DB를 생성하고 6개의 기능별 요악한 쿼리 파일
2. DB의 내용을 입력하는 코드
3. DB의 내용을 가져와서 DataGrid에 뿌려주는 코드

DB 기본 쿼리 파일

cs 기본 파일 - 고객 입력

cs 기본 파일 - 고객 리스트

Posted by gsi
:

Asp.Net에서 사용하는 DB 관련 기본 코드 입니다.
1. DB를 생성하고 6개의 기능별 요악한 쿼리 파일
2. DB의 내용을 입력하는 코드
3. DB의 내용을 가져와서 DataGrid에 뿌려주는 코드

DB 기본 쿼리 파일



cs 기본 파일


aspx 기본 파일

Posted by gsi
:

Asp.NET 에 있는 GridView는 기본적인 기능만으로도 활용도가 정말 좋은거 같다.
가장 좋은건 페이지 기능이 제일 맘에 드는거 같다.

업데이트, 삭제 등도 바로 지원하면서
디테일 뷰와 연동하면 기본적인 DB 제어가 가능해 진다.

하지만 기본적인 레이아웃으로만 사용해서 부족한 부분에서는 아래와 같이
TemplateField를 사용하게 되면 더 다양한 뷰를 생성할 수 있다.

아래는 GridView의 한 부분이다.

    <asp:GridView ID="GridView1" runat="server" AllowPaging="True"
        AutoGenerateColumns="False" CssClass="gridview"
        DataSourceID="SqlDataSource1" PageSize="6">
        <Columns>
            <asp:TemplateField HeaderText="선택">
                <ItemTemplate>
                    <asp:CheckBox ID="CheckBox1" runat="server" Text='<%# Eval("Item_name") %>' />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:templatefield HeaderText="아이콘">
                <itemtemplate>
                    <asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("view_img", "~\\Images\\object_icon_obj\\wi_{0}.png") %>' />                   
                    <!--<asp:Label ID="item_name1" runat=server Text='<%# Eval("Item_name") %>'  />-->
                    <asp:Label ID="uid1" runat=server Text='<%# Eval("uid") %>'  />
                </itemtemplate>
            </asp:templatefield>
        </Columns>
    </asp:GridView>

<asp:templatefield> 이걸로 묶어 주고
내부에 label, image 등등을 넣어서 레이아웃을 구성해 준다.

image 같은 경우에 url을 구성할 경우 format 정보가 필요할때가 있다.
Eval()함수를 사용해서 할때 2번째 인자 값을 사용하면 확장을 할 수가 있다.
Posted by gsi
: