다음 4개의 예제에서는 앞에서 본 usp_Output_No_Default를 다시 사용합니다. 매개 변수에 배치된 모든 것은 SQL 문의 일부가 아닌 필드 데이터로 처리되어 응용 프로그램의 보안을 훨씬 더 안전하게 만듭니다. 다음 예제는 SqlParameter를 만들고 일부 속성을 설정합니다. SqlParameter 생성자의 이 오버로드를 사용하여 정수 매개 변수 값을 지정할 때는 주의해야 합니다. 이 오버로드는 Object 형식의 값을 사용하므로 다음 C# 예제에서 설명하는 것처럼 값이 0일 때 정수 값을 Object 유형으로 변환해야 합니다. 위의 SqlCommand 생성자에서 첫 번째 인수에는 매개 변수 선언이 @City 포함되어 있습니다. 이 예제에서는 하나의 매개 변수를 사용했지만 쿼리를 사용자 지정하는 데 필요한 만큼의 매개 변수를 가질 수 있습니다. 각 매개 변수는 이 SqlCommand 개체에 할당해야 하는 SqlParameter 개체와 일치합니다. 모든 SqlCommands는 ExecuteScalar()로 실행됩니다. 예제의 정확한 실행에 대 한 동료 GitHub 프로젝트를 참조 하십시오. 다음 4가지 예제에서는 이 절차를 사용합니다. .NET 프레임워크의 연결된 아키텍처의 클래스입니다. 매개 변수를 나타냅니다.

SqlParameter 클래스로 작업하려면 데이터베이스가 있어야 합니다. 이 예제에서는 “student_detail” 테이블이 있는 데이터베이스 “학생”을 사용하고 있습니다. “RollNo”, “이름” 및 “도시”는 열 이름입니다. SqlParameter 클래스를 사용하여 레코드를 저장하고 검색합니다. 다음은 이 예제에서 사용할 SqlParameter 클래스의 중요한 속성 목록입니다. 데이터로 작업할 때는 일부 기준에 따라 결과를 필터링하는 경우가 많습니다. 일반적으로 이 작업은 사용자의 입력을 수락하고 해당 입력을 사용하여 SQL 쿼리를 형성하여 수행됩니다. 예를 들어 영업 사원은 특정 날짜 사이의 모든 주문을 확인해야 할 수 있습니다. 또 다른 쿼리는 도시별로 고객을 필터링하는 것입니다. 아시다시피 SqlCommand 개체에 할당된 SQL 쿼리는 단순히 문자열입니다.

따라서 쿼리를 필터링하려는 경우 문자열을 동적으로 빌드할 수 있지만 원하지는 않습니다. 다음은 쿼리를 필터링하는 나쁜 예입니다. 여기서는 특히 매개 변수를 정의하는 MSSQL 저장 프로시저와 저장 프로시저를 호출하는 데 사용되는 CommandType.StoredProcedure 형식의 sqlCommandADO.NET에 중점을 두고 있습니다. 값 : 매개 변수의 값을 할당하거나 가져오는 데 사용됩니다. 이제 Visual Studio 2010에서 Windows Forms 응용 프로그램을 사용하십시오. 아래 그림과 같이 일부 UI 컨트롤을 가져 와서 정렬하십시오. 데이터베이스에 레코드를 저장하기 위해 다음 코드를 작성합니다. 시스템 사용; System.Collections.Generic 사용; System.ComponentModel 사용; System.Data 사용 System.도면 사용; System.Linq 사용; System.Text 사용; System.Windows.Forms 사용 System.Data.SqlClient 사용 네임스페이스 WorkWithSqlParameterClass { 공용 부분 클래스 양식1 : 양식 { 공용 양식1() { 초기화 구성 요소() ); } SqlConnection conn; SqlCommand 통신; 문자열 연결 = “데이터베이스=학생;서버=; 사용자=sa;암호=윈텔렉트”; 개인 void btnsave_Click (개체 발신자, EventArgs e) { conn = 새 SqlConnection (connstring); conn. 열기(); comm = 새 SqlCommand(); 통신. 연결 = conn; SqlParameter SqlParameter PmtrRollNo = 새 SqlParameter()의 인스턴스 만들기; PmtrRollNo.ParameterName = “@rn”;// 이름 정의 PmtrRollNo.SqlDbType = SqlDbType.Int; 데이터 유형 PmtrRollNo.Direction 정의 = 매개 변수 방향.입력; SqlParameter SqlParameter PmtrName = 새 SqlParameter()의 방향 //만들기 인스턴스 설정); PmtrName.ParameterName = “@nm”;// 정의 이름 PmtrName.SqlDbType = SqlDbType.VarChar; 데이터 형식 PmtrName.Direction 정의 = 매개 변수 방향.Input;//SqlParameter SqlParameter PmtrCity = 새 SqlParameter()의 인스턴스 만들기 방향 설정; PmtrCity.매개 변수 이름 = “@ct”; 이름 PmtrCity.SqlDbType 정의 = SqlDbType.VarChar; 데이터 유형 PmtrCity.Direction 정의 = 매개 변수 방향.Input;// 방향 설정 // sqlcommand comm에 매개 변수 인스턴스 추가.

매개 변수.추가(PmtrRollNo); 통신. 매개 변수.추가(PmtrName); 통신. 매개 변수.추가(PmtrCity); 매개 변수 PmtrRollNo.Value의 설정 값 = Convert.ToInt32(txtrollno) 텍스트); PmtrName.Value = txtname. 텍스트; PmtrCity.값 = txtcity. 텍스트; comm.CommandText = “student_detail 값(@rn,@nm,@ct)에 삽입”; { 통신을 보십시오. 실행비 쿼리(); 메시지 상자.표시(“저장”); } 캐치 (예외) { MessageBox.Show (“저장되지 않음”); } 마지막으로 { conn. 닫기(); } } } } 응용 프로그램을 실행합니다.