[c# blazor] IJSRuntime이란? (자바스크립트 사용) 이번 포스팅에서는 블레이저에서 IJSRuntime을 통해 자바스크립트를 사용하는 방법에 대해 알아보겠습니다. 아래 예시처럼 버튼을 클릭하면 글자가 바뀌는 UI를 구성해볼건데요. 먼저 예제 코드를 작성할 Razor파일을 생성합니다. //JavascriptTest.razor 간단하게 UI를 구성해주고 버튼을 클릭하면 실행될 ChangeText()함수를 만들어 보았습니다. 빨간 사각형 부분이 자바스크립트와 연동시킬 함수를 넣는 부분인데요. 그에 앞서 c#코드에 자바스크립트 코드를 어떻게 작성할까요? //_Layout.cshtml _Layout.cshtml에 들어가서 문을 생성한 후 함수를 작성하면 됩니다. StartJS라는 이름의 함수로 작성을 해보았는데요, id값을 인자로 받고 있는 형태입니다. 즉 c#코드.. c#/blazor 2022. 7. 25. [c# blazor] 바인딩이란 ? (양방향, 단방향) 이번 포스팅에서는 블레이저에서 양방향(two-way) 바인딩 과 단방향(one-way) 바인딩이 무엇인지 알아보도록 하겠습니다. 예제를 작성할 razor파일을 생성합니다. //Example.razor routing 주소를 설정해줍니다. 1) one-way(단방향) 바인딩 @code 단에 들어있는 프러퍼티 값을 UI단에 출력 해보겠습니다. 원하는곳에 @를 붙혀주면 위 그림과 같은 방향으로 값이 전달 됩니다. output: 하지만 input창에 우리가 직접 값을 입력한다고 해서, ExValue값이 변경되지는 않습니다. 왜냐하면 code단에서 UI단으로만 전달되는 단방향(one-way) 바인딩이 적용되어있기 때문입니다. 그렇다면 UI단에서도 코드단으로 데이터를 넘겨주려면 어떻게 할까요? 그때 사용하는 것이 양.. c#/blazor 2022. 7. 22. [c#] Insert, Update, Delete 하는법 with EntityFramework (해당 포스팅은 이전 포스팅과 이어지는 글입니다.) 이번 포스팅에서는 EntityFramework를 이용하여 DB에 Insert, Update, Delete 를 적용하는 방법에 대해 알아보도록 하겠습니다. 현재 DB상황은 아래와 같습니다. 1) Insert Users.Add() 함수 인자로 User객체를 담는 형태로 DB에 Insert해줍니다. 값을 Insert한 후에는 SaveChanges()를 실행시켜줘야 DB에 저장된다는거 잊지 마시기 바랍니다. 하지만, 에러가 발생합니다. 왜 일까요? Id를 넣어주지 않았기 때문에 발생한 에러입니다. 우리가 만든 User클래스에 Id 프러퍼티가 설정되어 있으니까 당연히 채워줘야 겠지요. 수정 후 잘 추가 되었는지 확인해보겠습니다. 추가한 값이 잘 들어가 있는걸 확.. c# 2022. 7. 21. [c#] localdb에 EntityFramework 연결 하는 방법 이번 포스팅에서는 EntityFramework를 통해 localdb에 접속하는 방법에 대해 알아보도록 하겠습니다. 1. locadb에 테이블 생성 1) localdb 위치 확인 보기 => SQL Server 개체 탐색기를 클릭하면 왼쪽 편에 SQL server 개체 탐색기 창이 뜰텐데요. 여기서 SQL Server를 클릭해보면 현재 visual studio에 연결되어 있는 로컬 서버들이 보일것입니다. 2) DB 생성 두 서버 중 원하는 곳에 DB를 생성하면 됩니다. 우선 서버 하위에 있는 데이터베이스 폴더를 마우스 오른쪽 클릭합니다. 새 데이터베이스 추가를 누릅니다. 원하는 이름으로 데이터베이스 이름을 적습니다. 확인을 누르면 정상적으로 DB가 생성됩니다. 3) 테이블 구성 및 생성 DB를 생성했으니 그.. c# 2022. 7. 19. [c#] LINQ First vs Single | FirstOrDefault vs SingleOrDefault 차이 이번 포스팅에서는 First와 Single을 비교하고 FirstOrDefault 와 SingleOrDefault의 비교를 통해 각각의 개념을 알아보도록 하겠습니다. 1) single() vs first() 1~9로 구성된 리스트에서 1에 해당하는 값을 추출하는 코드입니다. 각각 First와 Single을 이용했는데요. 어떤 결과가 나올까요? output: 같은 결과가 나왔습니다. 그렇다면 둘은 같은 것일까요? 이번에는 list를 조금 수정해보겠습니다. 1을 하나 더추가해서 2개로 만들었습니다. 그 후 Single메소드를 실행 시켜보겠습니다. output: 한개 이상의 요소를 포함하고 있어서 발생되는 에러라고 하는데요. Single의 경우 조건에 맞는 대상이 2개 이상이 있으면 안됩니다. 그렇다면, Fir.. c# 2022. 7. 15. [c#] SQL in / not in 기능을 LINQ로 구현 select * from db where id in (2,4,5) => id가 2, 4, 5에 해당되는 경우의 값을 뽑아라 즉 , 복수의 조건에 해당하는 데이터를 뽑아내고 싶습니다. 이를 LINQ로 구현하려면 어떻게 할까요? 설명을 위해 간단한 예시 코드를 작성하겠습니다. 1) Product 클래스 생성 2) Product 클래스를 담을 List 생성 해당 List가 db역할을 할것임으로 db라는 이름으로 지어보았습니다. 3) 배열 생성 in (2,4,5 )에 역할을 할 배열을 하나 만듭니다. 4) 쿼리 작성 배열의 Contains함수를 통해 배열에 포함되어 있는 값을 확인하면서, 배열에 있는 값만 query에 저장하는 구조입니다. 만약 not in 기능을 사용하고 싶다면, 앞에 !(느낌표)를 붙혀 주면.. c# 2022. 7. 15. [wpf] System.IO.IOException: ''mainwindow.xaml' 리소스가 없습니다.’ 에러 해결방법 혹시 아래와 같은 창이 뜨면서 에러가 발생하시나요? 해당 에러는 일반적으로 MainWindow.xaml파일을 다른 폴더로 옮겼는데, App.xaml에 파일에서 설정을 바꿔주지 않아 발생하는 에러입니다. 가령 MainWindow.xaml파일을 Views폴더 아래로 이동시켰다고 해보겠습니다. 그리고 app.xaml파일에 들어가보겠습니다. //app.xaml StartupUri에 적힌 MainWindow.xaml의 위치가 업데이트 되지 않았습니다. 그래서 에러가 발생한것입니다. 즉, 아래와같이 수정된 파일 주소를 넣어주셔야 합니다. c#/wpf 2022. 7. 14. [c#] 양수일때 + 넣기 (using String.Format) String.Format 함수에 조건문 기능이 있다는거 알고 계셨나요? 이를 통해 입력 값이 양수일때는 + 를 붙히고, 음수일때는 - 를 붙히는 기능을 구현해 보도록 하겠습니다. 이 글을 읽기 전 선수 지식 포스팅 string format ### 000 차이 1) 양수, 음수에 따른 formatting 입력 값으로 20, 양수가 들어오자 "양수" 가 출력이 됩니다. output: 다음으로 -20, 음수가 입력으로 들어오자 "음수" 가 출력이 됩니다. output: 내부적으로 어떻게 동작하는지 감이 오시나요? 입력으로 양수가 들어오면 첫번째 위치한 값이 출력되고, 음수가 들어오면 두번째 위치한 값이 출력이 되는 것입니다. 이러한 원리를 통해 formatting 기법을 적용해보겠습니다. 2) # format.. c# 2022. 7. 14. [c#] string format ### 000 차이 숫자 타입 값을 formatting 하는데 사용되는 #와 0의 차이에 대해 알아보도록 하겠습니다. 1) 정수 케이스 빨간 사각형부분에 위치한 0은 우리가 인풋으로 넣는 데이터를 의미하고, :(콜론) 다음에 위치한 값이 인풋으로 들어온 값을 어떤 format으로 만들어줄지를 적어주는 곳입니다. 이번 포스팅의 주제인 #, 0이 각각 위치해 있네요. output: output을 보니 #, 0 둘다 한개만 적어줬는데 모든 숫자를 반환합니다. 이번에는 #, 0을 두개씩 적어보겠습니다. output: 여전히 같은 값을 출력합니다. 이번에는 세개씩 적어보겠습니다. output: 여전히 같네요. 이번에는 입력 값의 자리수(4자리)보다 더 많은 5개를 넣어보겠습니다. output: 드디어 차이가 보이기 시작합니다. # .. c# 2022. 7. 13. [c#] EventHandler란? (해당 포스팅은 이벤트 포스팅과 이어지는 글입니다.) 이번 포스팅에서는 EventHandler에 대해 알아보도록 하겠습니다. 1) EventHandler 생김새 기존에는 이벤트를 사용하기 앞서 델리게이트를 선 정의 해줬는데요. 델리게이트 정의 없이 한번에 이벤트를 사용할 수 있게 도와주는 c# 내부 델리게이트가 EventHandler라고 보시면 됩니다. 내부에서 제공하는 만큼 사용 규칙이 존재하는데요. Invoke()부분에 빨간줄로 에러가 뜨는게 보이실거에요. 뭐가 잘못되었는지 EventHandler의 원코드로 들어가보겠습니다. EventHandler라는 델리게이트가 두개의 인자를 받도록 강제하고 있기 때문에 발생한 에러였습니다. 여기서 sender는 해당 이벤트를 실행시키는 객체, e는 이벤트를 발생시.. c# 2022. 7. 12. [c#] 이벤트란? | 델리게이트와 차이 이번 포스팅에서는 델리게이트와 같은듯 다른 이벤트에 대해 알아보도록 하겠습니다. 이 글을 읽기 전 선수 지식 포스팅 델리게이트(delegate) 개념 델리게이트를 왜 쓸까? 1) 이벤트 정의 / 델리게이트와의 비교(1) 이벤트를 정의하는 방법은 간단합니다. 기존 델리게이트를 정의하는 방법에 event 키워드만 추가 해주면 됩니다. 여기서 조금 특이한 게 SomeEvent 이벤트를 발생시키는데, 굳이 doEvent()라는 함수 안에 감싼 형태로 작성을 하였다는 것인데요. 왜 그랬을까요? private필드에 접근하기 위해 public 프러퍼티를 이용하는것과 같은 결이라고 보시면 됩니다. 이벤트는 public으로 정의해도 외부에서 해당 이벤트로 접근이 불가하다는 특징이 있습니다. 그렇기 때문에 이벤트에 접근 .. c# 2022. 7. 11. [c#] 이메일 자동으로 보내기 (gmail smtp 이용) 최신 + 파이썬 이번 포스팅에서는 gmail smtp를 이용한 이메일을 보내는 법에 대해 알아보도록 하겠습니다. 1) 기본 뼈대 구성 (1) 필요한 네임스페이스를 추가합니다. (2) 이메일 전달 중에 발생할 수 있는 에러를 확인하기 위해 try , catch 문을 추가합니다. 2) 이메일 전달 코드 작성 (1) 전달 메일 관련 코드 MailMessage() 클래스 객체를 만듭니다 From 인자에는 보내는 사람의 메일 주소를 넣어줘야 하는데요, 이때 new MailAddress 클래스를 감싼 형태로 넣어 주어야 합니다. 다음으로 Subject에는 메일의 제목, Body에는 메일 내용을 작성 하면 됩니다. (2) 보낼 주소 추가 이어서 받는 사람의 메일 주소를 기입하는 부분입니다. MailMessage()의 객체(여기선 m.. c# 2022. 7. 8. 이전 1 2 3 4 5 ··· 8 다음