퇴근5분전


Win7 으로 복구시스템을 돌려 초기상태로 복구.

VS 2008 설치
MSSQL 2008을 설치... 중 에러!!

...

설치하다보니 VS2008 SP1을 설치하라고 해서 받아서 설치...   중 에러!!
( 무한..?루프 또는 생각보다 설치시간이오래 걸려서 ... 노트북 전원 off시간은 2시간 제한 되있음 )

찾아보니...    SP1을 설치할때 무한 도는 것처럼 되는것은 이전에 깔린 HotFix 문제로 이를 패치하여 제거하는 패치가 따로 있었고 이를 설치 하여 해결함.


모두 설치 완료...

'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글

Vs2008] 성능 카운터  (0) 2011.08.16
vs2008] WMI 관련..  (0) 2011.08.16
[LINQ] group by 여러조건 넣기.  (0) 2010.11.08
MS-Chart Demo  (0) 2010.11.05
포스트 잇 처럼 메모하는 레이아웃!!  (0) 2010.09.30


Chart 질문에 답변을 했었는데...

질문하셨던분이 아래와 같은 쿼리에 힌트를 주셔서... 아싸! 레어템... 

전에 LINQ에 그룹바이 조건에 여러개를 어떻게 넣나 고민하다가 많이 안쓰는 관계로 미뤘었고,
Chart  구현시에도 그룹바이를 좀 다르게 썼었는데... 

조금더 고민하면 한번에 그룹바이로 안되려나?

  DataTable dt = new DataTable();
            dt.Columns.Add("YM");
            dt.Columns.Add("ID");
            dt.Columns.Add("CNT", typeof(double));
            dt.Rows.Add("2010-10", "홍", 4d);
            dt.Rows.Add("2010-10", "홍", 3d);
            dt.Rows.Add("2010-10", "이", 1d);
            dt.Rows.Add("2010-09", "홍", 2d);
            dt.Rows.Add("2010-09", "이", 5d);


            var tmp = from j in
                          (from o in dt.AsEnumerable()
                           group o by new { ID = o.Field<string>("ID"), YM = o.Field<string>("YM") } into k
                           select new
                           {
                               Key = k.Key.YM,
                               CNT1 = k.Sum(R => k.Key.ID == "홍" ? Convert.ToDouble(R.Field<object>("CNT")) : 0),
                               CNT2 = k.Sum(R => k.Key.ID == "이" ? Convert.ToDouble(R.Field<object>("CNT")) : 0)
                           })
                      group j by new { Key = j.Key  } into T
                      select
                      new {
                        Key = T.Key,
                        CNT1 = T.Sum( R => R.CNT1 ),
                        CNT2 = T.Sum(R => R.CNT2),
                      };


결과로 그룹바이 된 컬럼으로 나타남. 

[ 년도 , CNT1 , CNT2 ] 


그룹바이를 두번해야되긴 하지만... 

그 나마 많이 줄었다..
 

'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글

vs2008] WMI 관련..  (0) 2011.08.16
노트북 셋팅..  (0) 2011.08.02
MS-Chart Demo  (0) 2010.11.05
포스트 잇 처럼 메모하는 레이아웃!!  (0) 2010.09.30
Ms Access 사용하기 예제소스.  (0) 2010.08.11

훈스 닷넷에 올라온 챠트관련 질문에 답글을 달았다.

챠트 구현보다 설치하는 시간이 더 걸린...

나름 단순하면서 깔끔해보인다.

챠트 설치 파일 검색에서 챠트를 잘 정리해둔 블로그가 있어서

챠트설치파일 링크만 써봤음...
http://six605.tistory.com/431?srchid=BR1http%3A%2F%2Fsix605.tistory.com%2F431











완성된 챠트입니다.
 
 
 아래 보시면 LINQ를 이용해서 새로운 테이블을 만든것을 볼수 있는데요
 
[YM]   , [CNT1], [CNT2]  
[년도]    [홍      ]  [이      ]
 
위같은 형태로 바꾸었습니다. 이쿼리는 원래 DB에서 하시는게 더 쉽게 만들수 있고요.
 
보시다싶이 씨리즈에 Y 멤버로 Cnt1, Cnt2로 각각 부여하면 챠트는 알아서 그려줍니다.
 
나머지 꾸미는 건 찾아보시면서 하시면 되겠네요 ^^;
 
아참 챠트가 Bar(Column) 형태인데요. 이건 챠트 타입을 바꿔주시면 됩니다.
 
수고하세요.
 

== 이하 소스입니다. ==
 
public Form1()
        {
            InitializeComponent();
            DataTable dt = new DataTable();
            dt.Columns.Add("YM");
            dt.Columns.Add("ID");
            dt.Columns.Add("CNT", typeof( double ));
            dt.Rows.Add("2010-10", "홍", 4d);
            dt.Rows.Add("2010-10", "홍", 3d);
            dt.Rows.Add("2010-10", "이", 1d);
            dt.Rows.Add("2010-09", "홍", 2d);
            dt.Rows.Add("2010-09", "이", 5d);
            var tmp2 = from k in dt.AsEnumerable()
                       group k by k.Field<string>("YM") into t
                       select new
                       {
                           Key = t.Key,
                           CNT1 = (from h in t
                                  where h.Field<string>("ID") == "홍"
                                  select Convert.ToDouble(h.Field<object>("CNT"))).Sum(),
                           CNT2 = (from h in t
                                   where h.Field<string>("ID") == "이"
                                   select Convert.ToDouble(h.Field<object>("CNT"))).Sum()
                       };

            DataTable source = new DataTable();
            source.Columns.Add("YM");
            source.Columns.Add("CNT1");
            source.Columns.Add("CNT2");
            foreach (var item in tmp2)
            {
                source.Rows.Add(item.Key, item.CNT1, item.CNT2);
            }
            chart1.Series.Clear();
 
            var tt = dt.AsEnumerable().Select(title => title.Field<string>("ID")).Distinct<string>();
            foreach (var item in tt)
            {
                chart1.Series.Add(item);
            }
            chart1.DataSource = source;
            chart1.ChartAreas[0].AxisX.Title = "년도";
            int cnt = 1;
            foreach (var item in chart1.Series)
            {
                item.AxisLabel = "접속 카운트";
                item.XValueMember = "YM";
                item.YValueMembers = "CNT" + cnt.ToString();
                cnt++;
            }           
        }



요렇게 디자인 하는것...  ( 훈스 게시판에 이런 모양의 디자인을 하고 싶어하는 분이 계셔서.. 잠깐..

Text 를 없애고 FormStyleBorder를 none이 아닌 다른걸로 했음. 그래야 사이즈 조정이 되니까!!



 

'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글

[LINQ] group by 여러조건 넣기.  (0) 2010.11.08
MS-Chart Demo  (0) 2010.11.05
Ms Access 사용하기 예제소스.  (0) 2010.08.11
WebClient와 WebBrowser의 차이는??  (3) 2010.07.30
LINQ 그룹바이... 훌...  (0) 2010.07.30



WPF용 플렉스 그리드에서 콤보박스형태로 데이타를 나타나게 하려면...

해당 컬럼에 ValueConverter에 
1.  new ColumnValueConvert(    [] 타입 , false );
2.  new ColumnValueConvert(  Dictionary  );
   ? 여기서 문제가 발생

  코드값 Y  , Name 값 Y인경우... 
 dic["Y" ] = "Y"; 로 해서 바인딩 시켰을 시 문제가 생긴다.

이를 해결하기 위한 방법을 아래 설명하였다.

( 삽질 신공으로 투자한 시간은 2일정도 된것 같음.. )
덕분에 바인딩을 모두 다시 공부했다...

/********************************************************************************************************

플렉스 그리드에서 기본 제공되는 컨버터로는 해결이 안된다.
예제 샘플을 보면 Dictionary로 선언해서 객체에서 받아서 넘겨주면
Key를 int로 검색하여 코드의 경우 문자열을 코드로 사용하는 경우
문제시 된다. : 예외로 지정한 캐스팅이 어쩌고 저쩌고...

이를 해결하기 위한 방법은 아래처럼 하면 된다.

1. AutoGenerateColumns  = false를 준다. ( true일경우 똑같은 컬럼들이 새로 생성된다 )
2. ItemSource 속성에 {Binding} 설정
3. DataContext에 데이타 테이블을 넘겨준다.
4. 컬럼.Binding = new Binding( Path명 ); 으로 설정해준다.
5. 컬럼.ValueConverter 에 새로 만든 UsedColumnValueConvert를 넘겨주자.
 : 컨버터에는 코드키와 값을 셋팅한 Dictionary<object, string>으로 구성해서 넘겨준다.

**********************************************************************************************************/
.cs 


    DataTable dt = new DataTable();

                dt.Columns.Add("NO");
                dt.Columns.Add("YN");

                dt.Rows.Add(1, "Y");
                dt.Rows.Add(1, "N");

                Dictionary<object, string> lst = new Dictionary<object, string>();

                lst["Y"] = "Y";
                lst["N"] = "N";
                lst["K"] = "K";

                Fx.DataContext = dt;
                Fx.AutoGenerateColumns = false;

                   Column c = new Column();
                c.Binding = new Binding("NO");

                Column c1 = new Column();
                c1.Binding = new Binding("YN");

                Fx.Columns.Add(c);
                Fx.Columns.Add(c1);

                Fx.Columns[1].ValueConverter = new UsedColumnValueConverter(lst);

// Fx.Rows.Add <== 하면 데이타 안늘어남. 참 뭐같음.
// 고로 원본을 꺼내 직접 Add 시켜야 함. 


                for (int i = 201001; i < 201012; i++)
                {
                    DataRow dr = dt.NewRow();
                    foreach (Column c in dt.Columns)
                    {
                        dr[c.ColumnName] = 0;
                    }
                    dr[0] = i;

                    dt.Rows.Add(dr);
                }
             
              //  Fx.Rows.Add(new Row());    // Row증가가 되지 않음.



.xaml

<c1Flex:C1FlexGrid  Grid.Row="1" Grid.Column="2" Name="Fx"  ItemsSource="{Binding}"  >
c1Flex:C1FlexGrid>



여기서 필요한건 새로 만든 UsedColumnValueConverter

 public class UsedColumnValueConverter : IValueConverter, IEditValueConverter
   
{
        IDictionary<object, string> dic = null;
        bool Ex = true;

        public UsedColumnValueConverter(IDictionary<object, string> idic)
        {
            dic = idic;
        }

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (dic.Keys.Contains(value))
                return dic[value];
            else
                return value;
             //
return null;     //널값 주면 값이 사라져버림.

        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return value;

           // return DependencyProperty.UnsetValue;
        }

        public bool Exclusive
        {
            get { return Ex; }
        }

        public ICollection Values
        {
            get {
              return  dic.Values.ToList();
           
            }
        }
    }



PS : 컨트롤에 대한 스터디 시간이 없으므로 다른 컨트롤로 교체됨.

'# 3) .Net ( Vs 2008 ) > WPF' 카테고리의 다른 글

WPF Textbox의 Numeric!  (0) 2015.09.05
WPF 에서 Keyboard 입력 하기 Winfom SendKeys 같은..  (0) 2011.09.08
IValueConverter 사용 데모  (0) 2010.09.06
WPF 쓰레드 ( 프로그래스바 )  (0) 2010.08.10
[WPF] Tab 순환코드  (0) 2010.07.27


 오늘 만든 폼에 사용해야 될 객체중 하나로 사용해본 후 기록함.

    // 정의
    public interface IValueConverter
    {
             object Convert(object value, Type targetType, object parameter, CultureInfo culture);
             object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture);
    }

 xaml에서 표현하는 컨트롤이 checkbox이고  내부 데이타(DB코드값)는 숫자타입 0 : false, 0 이 아니면 true라고 한다면...

[ValueConversion( typeof(int), typeof(bool))]
 public class IntToBoolenValueConverter : IValueConverter
    {
        #region IValueConverter 멤버
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            int i = System.Convert.ToInt32(value);
            return i != 0;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            bool b = System.Convert.ToBoolean(value);
            return b ? 1 : 0;
        }
        #endregion
    }

위와 같이 구현한다.

추가:  ValueConversion 속성순서처럼
int -> bool은 convert메서드에서
bool -> int는 ConvertBack 메서드에서 각각 구현순서로 기억하면 편하다
.




< 아래 소스 실행화면 >


/********************************************************************************************************
.xaml 내용
<Window x:Class="IValueConverterDemo.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:Me="clr-namespace:IValueConverterDemo"
    Title="Window1" Height="300" Width="300">
    <Window.Resources>
    
        <ResourceDictionary>             
            <Me:IntToBoolenValueConverter x:Key="intToBoolenValueConverter" ></Me:IntToBoolenValueConverter>
            <DataTemplate x:Key="ListBoxItemTemplate" >
                <StackPanel Orientation="Horizontal">
                    <CheckBox IsChecked="{Binding Path=dtChecked, Converter={StaticResource intToBoolenValueConverter}}"></CheckBox>
                    <TextBlock Text="{Binding Path=dtText}"></TextBlock>                   
                </StackPanel>
            </DataTemplate>
        </ResourceDictionary>
    </Window.Resources>
    <Grid>
        <ListBox Name="LstBox" ItemsSource="{Binding}" ItemTemplate="{StaticResource ListBoxItemTemplate}" ></ListBox>
    </Grid>
</Window>

.cs 내용

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data;

namespace IValueConverterDemo
{
    /// <summary>
    /// Window1.xaml에 대한 상호 작용 논리
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();

            DataTable dt = new DataTable();
            dt.Columns.Add("dtChecked");
            dt.Columns.Add("dtText");

            dt.Rows.Add( 1, "0 to False , 1 to True");
          dt.Rows.Add( 0, "0 to False , 1 to True");

            LstBox.DataContext = dt;
        }
    }

    [ValueConversion( typeof(int), typeof(bool))]
    public class IntToBoolenValueConverter : IValueConverter
    {
        #region IValueConverter 멤버
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            int i = System.Convert.ToInt32(value);
            return i != 0;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            bool b = System.Convert.ToBoolean(value);
            return b ? 1 : 0;
        }
        #endregion
    }

}






훈스에서 게임만드시는것 같은뎅... 졸작하시는것도 같은.. 질문에

잠깐 짬내서 만들어봤다.

Access 라해서 엑셀인가 했는데 MsAccess를 찾으니 mdb로 나온다.


이 예제는 간단히 mdb를 Com dll을 이용해서 생성하고 테이블을 만든 후

데이타 저장및 쿼리등을 할수 있다.

'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글

MS-Chart Demo  (0) 2010.11.05
포스트 잇 처럼 메모하는 레이아웃!!  (0) 2010.09.30
WebClient와 WebBrowser의 차이는??  (3) 2010.07.30
LINQ 그룹바이... 훌...  (0) 2010.07.30
Double.Parser()...  (0) 2010.07.19


 WPF 에 프로그래스 바를 사용할때!! 무거워서일까낭..?? 프로그래스에 진행도가 제대로 표현되지 않아서
쓰레드를 보았다.

아래 소스는 두가지를 주안점으로 했다.

첫번째 대리자 비동기 호출은 데브피아에서 비동기 구현관련해서 강좌를 보고 ...
           ( 전에 공부했던 내용이었는데 기억이 안나는건... )

두번째 Thread내에서의 Invoke를 이용해 대리자로써 메서드를 위임하는 부분이 WPF에서는 어찌 되는가를 알아보았다.

# 막상 Invoke를 써보니 Winform과 크게 다른건 없다. Dispatcher라는 프로퍼티에 Invoke를 이용할뿐이다.

 TextBox, Button, ProgressBar   이렇게 구성되어 있다.

   /// <summary>
    /// Window1.xaml에 대한 상호 작용 논리
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        public delegate void delegateSetTextRender(object i, int cnt);
        public void SetTextRender(object i, int cnt)
        {
            textBox1.AppendText(i.ToString() + "\r\n");
            progressBar1.Value = cnt;
        }

        public void INProgressValue(int Progress)
        {
            progressBar1.Value = Progress;
        }
        public void INProgressMaxValue(int Progress)
        {
            progressBar1.Maximum = Progress;
        }
        public void INProgressMinValue(int Progress)
        {
            progressBar1.Minimum = Progress;
        }


        public delegate void delegateProgress(int i);

        const int SEARCHCOUNT = 20000;

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            // 기본쓰레드로 할때 
            //Thread th = new Thread(new ThreadStart( DoEvent ));
            //th.Start();

            // 비동기로 구현할 때.
               Action ac = new Action(DoEvent);
            AsyncCallback  async = new AsyncCallback(_EndInvoke);
            IAsyncResult ir =  ac.BeginInvoke(async, ac);

        }

        void _EndInvoke( IAsyncResult iar )
        {
           Action ac = iar.AsyncState as Action;
           while (iar.IsCompleted == false)
           {
               Thread.Sleep(100);
           }
           ac.EndInvoke(iar);
       
        }

        /// <summary>
        /// ///////////////////////////////////////////////////
        /// </summary>
        void DoEvent()
        {
            this.Dispatcher.Invoke(new delegateProgress(INProgressValue), new object[] { 0 });
            this.Dispatcher.Invoke(new delegateProgress(INProgressMaxValue),
                                                                                       new object[] { SEARCHCOUNT });
            this.Dispatcher.Invoke(new delegateProgress(INProgressMinValue), new object[] { 0 });


            List<int> sosuList = new List<int>();
            sosuList.Add(2);

            // 검사대상수 1과 2는 건너뜀...
            int number = 3;
        

            // 소수 3만개 찾기위한 루프
            while (sosuList.Count <= SEARCHCOUNT)
            {
                // 소수 검사 결과 일단은 소수라고 의심
                bool result = true;

                // 소수 검사
                double stopNumber = Math.Sqrt(number);
                foreach (int i in sosuList)
                {
                    if ((number % i) == 0)
                    {
                        result = false;
                        break;
                    }
                    if (i > stopNumber) break;
                }
              
                // 진짜 소수면 리스트에 저장
                if (result)
                {
                    this.Dispatcher.Invoke(new delegateProgress(INProgressValue),
                                                                                   new object[] { sosuList.Count });
                    sosuList.Add(number);
                }

                // 검사대상 수 증가
                number++;

                // 검사수에 제한을 둠
                if (number > 20000000) break;
            }

           // this.Dispatcher.Invoke(new delegateProgress(INProgressValue),new object[] { 0 });
            // 추가적으로 파라미터 Thread !!를 구현하는 방법이다.
            Thread th = new Thread(new ParameterizedThreadStart(Dispaly));
          th.Start(sosuList);
                    
        }

        void Dispaly(object prms)
        {
            IList<int> sosuList = prms as IList<int>;
            int cnt = sosuList.Count;
            foreach (int val in sosuList)
            {
                 this.Dispatcher.Invoke(new delegateSetTextRender(SetTextRender),
                                                                                           new object[] { val, --cnt });
               // this.textBox1.AppendText(val.ToString() + "\r\n");
            }
        }
    }

'# 3) .Net ( Vs 2008 ) > WPF' 카테고리의 다른 글

FlexGrid : WPF 콤보 컬럼 (Combo Column Type)  (0) 2010.09.07
IValueConverter 사용 데모  (0) 2010.09.06
[WPF] Tab 순환코드  (0) 2010.07.27
툴을 제작 해서 프로젝트를... 진행하다!  (0) 2010.02.26
WPF 3D  (0) 2009.12.29


훈스에 올라온 질문중에 한글이 들어간 파라미터를 사용하는 OpenAPI 주소를 넣으면
xml을 제대로 쿼리해오지 못한다고 해서...
 
URI에 한글이 있고 없고 차이였는데... WebClient에 넣으면 자동 인코딩이되어 데이타가 안나오고
WebBrowser에 넣으면 제대로 데이타가 나온다.


WebClient로 해봤으나.. 역시 기초부족일테고, httpWebRequest도 해보고 WebRequest....

다 써봤는데 젠장... 제대로 안온다.?

Explorer에 주소 치고 엔터 치면 가져온다...

그래서 WebBrowser에 Url 속성에 넣고 가져와봤더니 가져온다..???

여기서..........         겁나 깝깝했다... 하나는 가져오고 하나는 가져오지 않는다.

근데 WebBrowser는 컨트롤인데 좀 패키지화 시키기 어정쩡한?

그래서 나온 소스가?

 delegate void GetXml(string _xml);
        private void MM(Uri ur, GetXml write)
        {
            WebBrowser wb = new WebBrowser();
            {
                wb.Url = ur;
                wb.DocumentCompleted += (s, e) =>
                {
                    write(wb.DocumentText);
                    using (wb) { /* 객체를 없애기 위해 */ };
                };
                wb.Refresh(WebBrowserRefreshOption.Completely);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Uri ur = new Uri("~~~~~~~");
            MM(ur, x => [webBrowser1.DocumentText] = x);
        }


풋... 좀 깬다 ㅡ.,ㅡ;;;

이건.. 유틸용으로다... 쩝.....
  public class Util
        {
            public delegate void GetXml(string _xml);
            public static void MM(Uri ur, GetXml write)
            {
                WebBrowser wb = new WebBrowser();
                {
                    wb.Url = ur;
                    wb.DocumentCompleted += (s, e) =>
                    {
                        write(wb.DocumentText);
                        using (wb) { /* 객체를 없애기 위해 */ };
                    };
                    wb.Refresh(WebBrowserRefreshOption.Completely);
                }
            }
        }

        // 사용할때~
        private void button1_Click(object sender, EventArgs e)
        {
            Uri ur = new Uri("~~~~~~~~");
            Util.MM(ur, x => [webBrowser1.DocumentText]  = x);
        }


더워서 더는 못하겠따~!!!

'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글

포스트 잇 처럼 메모하는 레이아웃!!  (0) 2010.09.30
Ms Access 사용하기 예제소스.  (0) 2010.08.11
LINQ 그룹바이... 훌...  (0) 2010.07.30
Double.Parser()...  (0) 2010.07.19
암묵적인 형변환? 코드...?  (0) 2010.05.18


훈스에 올라온 질문글에 무심코 그룹바이로 하면 쉬울것 같아요... ....................

LINQ는 간간히 msdn보면서 하고 있지만...

무심코 한말을 되집어 보고자 직접 쿼리에 도전...

ㅡ.,ㅡ; 1시간 넘게 삽질 했넹..

Sum .. 이넘때메...








그룹바이 은근 어렵넹.

dt = new DataTable();

            dt.Columns.Add("A");
            dt.Columns.Add("B");

            dt.Rows.Add(new object[] { "A", 10 });
            dt.Rows.Add(new object[] { "A", 10 });
            dt.Rows.Add(new object[] { "B", 10 });
            dt.Rows.Add(new object[] { "A", 10 });

            var a = from tmp in dt.AsEnumerable()
                    group tmp by tmp.Field<string>("A") into k
                    select new
                    {

                        c1 = k.Key,
                        c2 = k.Sum(sum =>  Convert.ToInt32( sum.Field<string>("B") ))
                    };

            DataTable result = new DataTable();
            result = dt.Clone();
            foreach (var tt in a)
            {
                result.Rows.Add(new object[] { tt.c1, tt.c2 });
            }

'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글

Ms Access 사용하기 예제소스.  (0) 2010.08.11
WebClient와 WebBrowser의 차이는??  (3) 2010.07.30
Double.Parser()...  (0) 2010.07.19
암묵적인 형변환? 코드...?  (0) 2010.05.18
IPC .Net ( 프로세스간 통신 )  (1) 2010.05.12