2012-11-09 4 views
0

목록의 값을 keyvaluepair의 키로 일치시키고 keyvalue 쌍에서 해당 값을 검색하고 sql 매개 변수로 사용하려고합니다.이 예에서는 @ValueDE입니다.keyvaluepair에서 데이터베이스 테이블에 삽입

foreach (KeyValuePair<int,string> kvp in Valuedescripts) 
{ 
    int val = kvp.Key; 
    string descrip = kvp.Value; 

    foreach (DataUds data in DataUds) 
    { 
     using (DB2Connection sqlconn = new DB2Connection()) 
     { 
      sqlconn.Open(); 

      DB2Command cmdtx = new DB2Command(); 

      string insert = @"INSERT into LNPY (LN_NR, ITEM_NAME, MR_NR, VALUE) 
          VALUES (@LN, @Nbr, @Val, @ValueDE)"; 
      cmdtx.Parameters.Add("@Nbr", data.MN); 
      cmdtx.Parameters.Add("@Ln", data.LN); 
      cmdtx.Parameters.Add("@Val",data.item); 

이 매개 변수는 어떻게 구합니까? Cmdtx.Parameters.Add ("@ valueDE",

Data.item은 목록에서 가져온 값이므로이 값을 val (kvp.key)과 같게 설정하고 해당 Descrip을 매개 변수

+1

형식 코드 ..... – Jared

+0

그래서 무엇이 문제입니까? 왜'int val' 값을 사용하지 않을까요? – nawfal

+0

data.ln을 찾아야합니다. keyvaluepair 목록에서 키에 해당하는 값을 찾아서 @valueDe 매개 변수로 설정하십시오. – LewSim

답변

0

나는 당신이 당신의 삽입 쿼리에서 매개 변수로 사용할 수 있습니다. 당신은 내가 추측 가까이있어 keyvaluepair에서 값을 필요로하는 점을 제외하고 정확하게 후 무엇인지에 관해서는 확실 해요.

로 그를 기입
foreach (KeyValuePair<int,string> kvp in Valuedescripts) 
{ 
    int val = kvp.Key; 
    string descrip = kvp.Value; 

    foreach (DataUds data in DataUds) 
    { 
     //something like 
     if (descrip == data.item) //only u know it 
     { 
      using (DB2Connection sqlconn = new DB2Connection()) 
      { 
       sqlconn.Open(); 

       DB2Command cmdtx = new DB2Command(); 

       string insert = @"INSERT into LNPY (LN_NR, ITEM_NAME, MR_NR, VALUE) 
            VALUES (@LN, @Nbr, @Val, @ValueDE)"; 
       cmdtx.Parameters.Add("@Nbr", data.MN); 
       cmdtx.Parameters.Add("@Ln", data.LN); 
       cmdtx.Parameters.Add("@Val",data.item); 
       cmdtx.Parameters.Add("@ValueDE", val); 
      } 

      break; //again only u know it. Will be good if you have only item to match 
     } 
    } 
} 

또한 DB에 객체 목록을 삽입하지 마십시오. VALUES (...), (....), (...... synta를 사용하여 대량 삽입보다 훨씬 느립니다. 엑스. 실제로 쿼리를 구성하기 위해 foreach를 반복해야합니다.

+0

좋아요. 더 자세한 설명 data.item은 목록에서오고 keyvaluepair 목록에서 val (kvp.key)을 조회 할 때 해당 값을 사용해야하고 data.item = val (kvp.key) 인 경우 descrip kvP.value)를 입력하고 매개 변수를 채 웁니다. – LewSim

+0

@LewSim 내가 정확히 정확히 한 것은 아니 었나요? – nawfal

+0

죄송합니다. 상단에 if를 놓쳤습니다. – LewSim

관련 문제