'msdn'에 해당되는 글 3건

  1. 2009.06.02 [Linq] Linq To Sql - 시작하기
  2. 2009.05.18 asp.net webpart 개요
  3. 2008.07.30 [SilverLight] 파일을 올려 보자 2

[Linq] Linq To Sql - 시작하기

.Net 2009. 6. 2. 10:58 posted by 무명시인

Net Framework 3.X 부터 Linq 라는 기술이 등장했다.

머 설명은 각설하고..

시작하기를 주절대볼까 한다.

사용자 삽입 이미지

솔루션 탐색기 > 웹사이트 > 새항목 추가에서 Linq to SQL 클래스를 선택한다.

사용자 삽입 이미지

그러면 다음과 같은 경고가..

App_Code 폴더를 추가하겠다는 말이니 "예"를 선택한다.
사용자 삽입 이미지

그러면 하얀 화면이 보일것이다..

여기서 서버탐색기 > 새 연결추가 를 선택한다.

그러면 위와 같은 화면에서 Sql Server 를 선택한다..

우리는 Ms-Sql 을 사용할것이니..

사용자 삽입 이미지

위 화면은 익숙할것이다..

NorthWind 데이타 베이스를 사용할것이니..

선택후 연결테스트를 해본다.

사용자 삽입 이미지
서버탐색기에서 익숙한 화면이 보일것이다..

해당 테이블은 Drag & Drop 으로 하얀 화면에 떨어뜨린다.

사용자 삽입 이미지

그러면 위화면처럼 선택이 되고 저장을 하고 닫는다.

사용자 삽입 이미지

App_Code 폴더에 추가된 클래그와 디자인용파일들이 보인다..

참고로 Web.config 에 다음과 같은 연결문자열이 생긴다.

사용자 삽입 이미지

테스트 페이지에 GridView 를 떨어뜨리고..

다음과 같은 코드를 입력해보자..

 protected void Page_Load(object sender, EventArgs e)
    {
        NorthwindTestDataContext northwind = new NorthwindTestDataContext();

        var data = from qNorthwind in northwind.Employees
                   select new 
                   { 
                        EmployeeId = qNorthwind.EmployeeID,
                        LastName = qNorthwind.LastName,
                        Title = qNorthwind.Title
                   };

        this.GridView1.DataSource = data;
        this.GridView1.DataBind();
    } 


사용자 삽입 이미지


결과는 위화면 처럼..

참~ 쉽죠~~

코드에 대한 설명은 하지 않는다.

asp.net webpart 개요

.Net 2009. 5. 18. 09:45 posted by 무명시인
사용자 삽입 이미지

역기 MSDN 에는 모든게 다 있다.

http://msdn.microsoft.com/ko-kr/library/e0s9t4ck.aspx

[SilverLight] 파일을 올려 보자

SilverLight 2008. 7. 30. 08:59 posted by 무명시인

사용자 삽입 이미지

1. 실버 라이트 프로젝트를 만들어 봅니다.

사용자 삽입 이미지


2. 다음과 같이 솔루션이 구성이 됩니다.

사용자 삽입 이미지

3. 웹프로젝트에서 넘어온 파일 스트림을 저장할 제네릭 핸들러를 만들어 봅니다..
 
  이름은 'Receiver.ashx' 로 하겠습니다.

<%@ WebHandler Language="C#" Class="Receiver" %>

using System;
using System.Web;
using System.IO;

public class Receiver : IHttpHandler 
{
    private string strFileDir = "~/AttachFile/";
    //private string strFileDir = "
\\\\192.168.0.100\\ktdata\\";
     
    public void ProcessRequest (HttpContext context)
    {             
        string strFileName = context.Request["filename"].ToString();
        //strFileName = GetFilePath(strFileDir, strFileName);

        //string strFilePath = strFileDir + strFileName;       
        string strFilePath = context.Server.MapPath(strFileDir + strFileName);

        FileStream objFs = File.Create(strFilePath);
        SaveFiles(context.Request.InputStream, objFs);
    }

    private void SaveFiles(Stream objInputStream, FileStream objFs)
    {
        byte[] buffer = new byte[4096];
        int intbytesRead;

        while ((intbytesRead = objInputStream.Read(buffer, 0, buffer.Length)) != 0)
        {
            objFs.Write(buffer, 0, intbytesRead);           
        }
    }
 
    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

    public string GetFilePath(string strBaseDirTemp, string strFileNameTemp)
    {
        string strFileName = System.IO.Path.GetFileNameWithoutExtension(strFileNameTemp);
        string strExt = System.IO.Path.GetExtension(strFileNameTemp);
        bool blnExists = true;
        int i = 0;

        while (blnExists)
        {
            if (System.IO.File.Exists(System.IO.Path.Combine(strBaseDirTemp, strFileNameTemp)))
            {
                i++;
                strFileNameTemp = strFileName + "(" + i + ")" + strExt;
            }
            else
            {
                blnExists = false;
            }
        }
        //return System.IO.Path.Combine(strBaseDirTemp, strFileNameTemp);
        return strFileNameTemp;
    }
}

사용자 삽입 이미지

4. 파일을 저장 할 폴더를 만들어 봅니다.

사용자 삽입 이미지

5. 자..이제 실버 라이토 프로젝트로 넘어와서..

다음 참조를 붙여 줍니다..


사용자 삽입 이미지


6. Page.xaml 를 구성합니다..아주 심플하게..

<UserControl x:Class="FileUpload.Page"
    xmlns="
http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="
http://schemas.microsoft.com/winfx/2006/xaml"
    Width="400" Height="300">
    <Grid x:Name="LayoutRoot" Background="White">
        <StackPanel >
            <Button Content="선택" FontFamily="Verdana" Width="100"  HorizontalAlignment="Left"  x:Name="btnUpload"  />
            <TextBlock x:Name="StatusText"  />
        </StackPanel>
    </Grid>
</UserControl>

7. Page.xaml.cs 도 마저 구성 하볼랍니다. 자세한 코드 설명은 하지 않습니다..

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

using System.IO;
using System.Windows.Browser;
using System.Configuration;

namespace FileUpload
{
    public partial class Page : UserControl
    {
        Stream fileData;       

        public Page()
        {
            InitializeComponent();

            Loaded += new RoutedEventHandler(Page_Loaded);
            btnUpload.Click += new RoutedEventHandler(btnUpload_Click);
        }      

        void Page_Loaded(object sender, RoutedEventArgs e)
        {
            HtmlPage.RegisterScriptableObject("SilverLightFileUpload", this);
        }

        [ScriptableMember]
        public void btnUpload_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFile = new OpenFileDialog();
            openFile.Multiselect = false;
            openFile.Filter = "All files|*.*";

            if (Convert.ToBoolean(openFile.ShowDialog()))
            {
                this.StatusText.Text = openFile.SelectedFile.Name;

                UploadFile(openFile.SelectedFile.Name, openFile.SelectedFile.OpenRead());               
            }
            else
            {
                this.StatusText.Text = "화일을 선택해";
            }                                                    
        }       

        private void UploadFile(string strFileName, Stream objStream)
        {
            UriBuilder ub = new UriBuilder("
http://localhost:1897/FileUploadWeb/Receiver.ashx");
            ub.Query = String.Format("filename={0}", strFileName);

            WebClient wc = new WebClient();

            wc.OpenWriteCompleted += (sender, e) =>
                {
                    Pushdata(objStream, e.Result);
                    e.Result.Close();
                    objStream.Close();
                };
            wc.OpenWriteAsync(ub.Uri);      
        }

        private void Pushdata(Stream objInputStream, Stream objOutputStream)
        {
            byte[] buffer = new byte[4096];
            int bytesRead;

            while ((bytesRead = objInputStream.Read(buffer, 0, buffer.Length)) != 0)
            {
                objOutputStream.Write(buffer, 0, bytesRead);
            }
        }        
    }
}

8. 다 했으면  F5 를 꾹 눌러 봅니다..

  파일 창이 열리고 파일을 선택하면 하단에 파일이름이 보입니다.

사용자 삽입 이미지

9. 파일 첨부 폴더를 확인합니다..  오호라..  들어가 있군요..
사용자 삽입 이미지

10.  출처는 MSDN 입니다.