차트 불러와서 DB에 저장하기

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 : 5.7.0
  • 프로젝트명 : Loheldi Project
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 : ArgumentException: Item has already been added. Key in dictionary: ‘ItemCode’ Key being added: ‘ItemCode’
    System.Collections.SortedList.Add’

안녕하세요 잘 사용하고 있습니다. 현재 차트에서 내용을 불러와서 버튼을 누르게되면 바로 DB에 저장하려고 하는데요 위처럼 이미 추가된 아이템이라고 하면서 엑셀 파일중 첫번째 컬럼만 입력이 됩니다. 팁 알려주시면 감사하겠습니다. 코드 첨부합니다.

public class Load_BasicCustom : MonoBehaviour
{
    BackendReturnObject BRO = Backend.Chart.GetChartContents("46285");
    // Start is called before the first frame update
    void Start()
    {        
        if (BRO.IsSuccess())
        {
            JsonData rows = BRO.GetReturnValuetoJSON()["rows"];
            for(int i = 0; i < rows.Count; i++)
            {
                Debug.Log("ItemCode:" + rows[i]["ItemCode"][0]);
                Debug.Log("ItemName:" + rows[i]["ItemName"][0]);
                Debug.Log("Model:" + rows[i]["Model"][0]);
            }
            
        }
    }

    public void SaveBasicCustom()
    {
        Param param = new Param();
        if(BRO.IsSuccess())
        {
            JsonData rows = BRO.GetReturnValuetoJSON()["rows"];
            for(int i = 0; i < rows.Count; i++)
            {
                param.Add("ItemCode", rows[i]["ItemCode"][0]);
                param.Add("ItemName", rows[i]["ItemName"][0]);
                param.Add("Model", rows[i]["Model"][0]);
                
            }
        }
        Backend.GameData.Insert("ACC_CUSTOM", param);
    }

안녕하세요 개발자님

param.Add(“ItemCode”, ㅇㅇㅇ)에 들어가는 for문에서 키값인 ItemCode가 중복으로 Add되기 때문에 에러가 발생하는 것으로 확인됩니다.

List등을 사용하여 중복된 데이터를 연속적으로 처리해주시기 바랍니다.

public class Item
{
    string ItemCode;
    string ItemName;
    string Model;
    public Item(JsonData json)
    {
        ItemCode = json["ItemCode"][0].ToString();
        ItemName = json["itemName"][0].ToString();
        Model =  json["Model"][0].ToString();
    }
    public Item(string itemCode, string itemName, string model)
    {
        ItemCode = itemCode;
        ItemName = itemName;
        Model = model;
    }
}
    public void SaveBasicCustom()
    {
        Param param = new Param();
        if(BRO.IsSuccess())
        {
            JsonData rows = BRO.GetReturnValuetoJSON()["rows"];
            List<Item> list = new List<Item>();
            for(int i = 0; i < rows.Count; i++)
            {
                list.Add(new Item(rows[i]));                
            }
            param.Add("ItemList", list);
        }
        Backend.GameData.Insert("ACC_CUSTOM", param);
    }
좋아요 1