복붙노트

[SQL] 어떻게 C #에서 NVARCHAR (최대) SqlParameter에를 만드는 방법? [복제]

SQL

어떻게 C #에서 NVARCHAR (최대) SqlParameter에를 만드는 방법? [복제]

동적으로 작업 번호 (따라서 길이를 알 수없는)의 문자열을 생성하는 DataTable을 다시 끌어 다음 코드 저장 프로 시저를 사용하여 문자열 매개 변수 @JobNumbers 입력을 가지고있다 :

using (SqlConnection connection = new SqlConnection(con))
        {
            SqlCommand cmd = new SqlCommand("dbo.Mystoredprocedure", connection);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@JobNumbers", SqlDbType.VarChar, 4000);
            cmd.Parameters["@JobNumbers"].Value = JobNumber;

            SqlDataAdapter da = new SqlDataAdapter(cmd);

            connection.Open();
            da.Fill(JobDetails);
        }

당신은 내가 현재 500 개 작업 번호를 주위에 걸릴 충분히해야한다 충분해야한다 4000의 길이에 JobNumber 매개 변수를 설정 한 볼 수 있듯이. 그러나, 그것은 이상한 기회에 더해야 할 가능성이있다. 그래서 궁금 해서요, (최대) NVARCHAR에 해당하는 SQL 매개 변수 형식으로 매개 변수를 설정하는 방법은 무엇입니까?

나는 (SqlCommand를? 매개 변수를 전달하는 가장 좋은 방법은 무엇입니까) 여러 유사한 질문을 살펴 했어 그러나 아무도는 특히 당신이 (또는 수 없습니다)이 작업을 수행 할 수 있는지 여부를 말할. 둘째, 내가 (최대) 따라서 아마도 내가 전혀 C #에서 길이를 설정할 필요가 없습니다 것 NVARCHAR에 저장 프로 시저에 @JobNumber 매개 변수를 설정하면이 작업을 수행하는 데에도 필요하다? 내가 이렇게 할 경우 SqlCommand를 매개 변수를 추가 할 때 "SqlDbType"와 "크기"를 사용해야하는 경우이 질문에 제안이 잠재적 인 성능 문제가됩니다?

해결법

  1. ==============================

    1.이것은 당신이 명시 적으로 NVARCHAR (최대)를 설정하는 방법입니다 :

    이것은 당신이 명시 적으로 NVARCHAR (최대)를 설정하는 방법입니다 :

    cmd.Parameters.Add("@JobNumbers", SqlDbType.NVarChar, -1);
    

    당신은 정말 성능에 관심 있다면 당신은 정수의 테이블을 통과하는 것을 고려할 수 있습니다 : https://stackoverflow.com/a/10779593/465509

  2. from https://stackoverflow.com/questions/21087950/how-to-create-nvarcharmax-sqlparameter-in-c by cc-by-sa and MIT license