2013-12-15 4 views
0

linq to entity를 사용하여 여러 목록 상자 값을 테이블의 단일 필드에 저장하려고합니다. 이것은 내 코드입니다. 어떠한 제안?단일 행 및 단일 열에 여러 ListBox 값을 저장하는 방법

protected void Button5_Click(object sender, EventArgs e) 
{ 
    for(var i = 0; i < lb2.Items.Count; i++) 
    { 
     var e1 = new employee() { emp_skill = lb2.Items[i].Text }; 
     je.employee.AddObject(e1); 
    } 
    je.SaveChanges(); 
} 

답변

1

귀하의 데이터가 문자열의 모음이며 단일 문자열로 저장하려고한다고 가정합니다. 다음 코드는 세미콜론으로 구분 한 문자열이 될 문자열의 그 컬렉션, 당신은 하나의 행 단일 컬럼 데이터로 저장할 수 있습니다합니다

protected void Button5_Click(object sender, EventArgs e) 
    { 
     var semicolonSeparatedString = ""; 
     var e1 = (from emp in je.employee where emp.emp_email == txtmail.Text select emp).FirstOrDefault(); 
     for (int index = 0; index < lb2.Items.Count; index++) 
     { 
      //no need to add separator for the first item 
      if (index == 0) semicolonSeparatedString += lb2.Items[index]; 
      else semicolonSeparatedString += ";" + lb2.Items[index]; 
     } 
     //data formatted as single string and ready to be saved 
     e1.emp_skill = semicolonSeparatedString; 
     je.SaveChanges(); 

을 그리고 당신은 문자열의 집합으로 다시 취득 할 때 단순히 분할을 (사용) 확장 방법 :

//load data from datasource (database or file) 
var semicolonSeparatedString = je.employee.FirstOrDefault(o => o.name == "employeeName").Select(o => o.emp_skill); 
//split to get the single string data back to array of string 
var items = semicolonSeparatedString.Split(';'); 
foreach(var item in items) 
{ 
    lb2.Items.Add(item); 
} 

Windows에서 ListBox로 코드를 테스트했습니다.

업데이트 : 데이터베이스의 데이터 저장 및로드를 포함하도록 코드를 업데이트합니다.이 부분은 테스트되지 않았습니다. 질문과 여러 가정에 기초한 내 코드.

+0

'SaveMyData'이름이 현재 컨텍스트에 없습니다. –

+0

위 오류 @ har7 –

+0

예, SaveMyData() 및 LoadMyData() 함수는 현재 존재하지 않습니다. 이 두 가지 기능을 수행하고 거기에서 데이터 작업을 저장하고로드해야합니다. 난 당신이 이미 C# 코드에서 데이터베이스를 저장하고 쿼리하는 방법을 알고 있다고 가정했습니다. – har07

0

값을 단일 바이트 스트림으로 직렬화 한 다음 해당 데이터를 데이터베이스에 저장해야합니다. 바이너리 직렬화 또는 XML 직렬화 또는 임의의 사용자 지정 직렬화 메커니즘과 같이 값을 serialize하는 여러 가지 방법이 있습니다. 이에 따라 컬럼 유형을 변경해야합니다 (예 : 2 진 직렬화의 경우 데이터베이스의 BLOB 유형이 가장 적합 할 수 있음).

+0

어떻게 구현합니까? 링크를 제안 해 주시겠습니까? –

+0

그냥 구글, 거기 예제의 톤이 있습니다. 다음은 이진 직렬화를위한 것입니다. [link] (http://tech.pro/tutorial/618/csharp-tutorial-serialize-objects-to-a-file) –

관련 문제