2009-08-24 2 views
0

LINQ to SQL과 DataGridViews를 사용하여 데이터베이스의 편집 가능한 사용자 인터페이스를 만듭니다.
내 문제는 데이터베이스의 결과를 가져올 때 열 이름을 변환해야한다는 것입니다. 왜냐하면 데이터베이스의 모든 이름이 영어 (Visual Studio 클래스 디자이너에서 지원하는 유일한 언어)로되어 있기 때문에LINQ to SQL, 익명 형식이 읽기 전용입니다.

c_dgvShops.DataSource = (from Shop s in DataContext.Shops 
           select new 
            { 
             Azonosito = s.Shop_ID, 
             Nev = s.Name, 
             Megye = s.County, 
             Iranyitoszam = s.Zipcode, 
             Cim = s.Address, 
             Latogatasok_szama = s.Visits.Count 
            }); 

(익명 형식의 속성 이름은 [I가에 표시 할 언어] 헝가리어로 유의하시기 바랍니다, 번역 : 다른 언어는 ...

그래서 나는 익명 형식을 사용하는 방법에 대한 생각 영어)

이로 인해 데이터 GridViews는 읽기 전용입니다.
몇 가지 Google 검색을 수행하여이를 확인했습니다 : http://blogs.msdn.com/swiss_dpe_team/archive/2008/01/25/using-your-own-defined-type-in-a-linq-query-expression.aspx. 이 문서를 바탕으로
, 나는 (쇼핑 헝가리 상당) '볼트'라는 새로운 클래스를 생성하고 변환 된 속성 이름을 작성, 그래서 쿼리가되었다 :

c_dgvShops.DataSource = (from Shop s in DataContext.Shops 
           select new Bolt 
            { 
             Azonosito = s.Shop_ID, 
             Nev = s.Name, 
             Megye = s.County, 
             Iranyitoszam = s.Zipcode, 
             Cim = s.Address, 
             Latogatasok_szama = s.Visits.Count() 
            }); 

그것을 나에게 완전히 명확하지 않지만 , 어떻게하면 DataGridView에 표시된 데이터를 편집 할 수 있었는지, 시도해 보았고 예외가 발생했습니다.

NotSupportedException : 질의에 'DataTest_L2SQL.Bolt'엔터티 형식의 명시 적 생성이 허용되지 않습니다.

그래서 올바른 방법은 무엇입니까? 별칭 열 이름을 표시 할 수 있지만 데이터를 편집 가능한 상태로 유지하려면 어떻게해야합니까?

미리 감사드립니다.

답변

2

DataGrid 열을 수동으로 정의해야합니다 (데이터 캡트를 원하는대로 설정할 수 있고 크기 및 표시 형식을 사용자 정의 할 수 있음). 데이터 그리드를 사용하여 데이터 소스를 통해 열을 발견하지 마십시오. 이 기능은 빠르고 더러운 설정에만 사용됩니다.

+0

오, 젠장 ... 나는 그것을 다시 복잡하게 만들었다 ... 다시! 고맙습니다! – ShdNx

0

잘못된 방향으로 가고 있습니다. 현지화에 다른 클래스 특성 이름을 사용하지 않아야합니다.

따라가 guide to localize your page. 열의 HeaderText를 지정하고 양식 언어를 변경 한 다음 해당 언어의 HeaderText를 다시 지정하십시오.

+0

예, 이미 알아 냈습니다. 그렇다면 내가 대신 그렇게해야합니까? – ShdNx