2011-05-04 8 views
0

DataGrid에 데이터를 표시하려는 SQL CE 데이터베이스가 있습니다. SQL 쿼리를 수행 한 다음 Items.Add에서 까지 DataGrid의 루프를 수행 할 수 있습니다. 그러나 루프를 통해 새로 고치거나 DataReader를 사용하지 않고 SQL CE 데이터베이스를 DataGrid에 직접 바인드 할 수 있는지 궁금합니다.SQL CE 데이터베이스를 DataGrid 컨트롤에 바인딩하는 방법?

예를 들어, 데이터베이스에 새 행이 추가되면 DataGrid는 직접 수동으로 새로 고치지 않고 자동으로 표시합니다 (예 : SQL 쿼리가있는 Button).

나는 아래의 방법을 따라 시도

그러나 그것은 작동하지 않았다

dataGrid1.ItemsSource = connString.Database; 

어떤 제안을? (BTW, 런타임에 모든 컨트롤을 만들므로 XAML 솔루션이 없음)

답변

1

행이 데이터베이스에는 없지만 테이블에 있습니다. 데이터베이스는 하나 이상의 테이블을 가질 수 있습니다. 따라서 데이터베이스 바인딩은 작동하지 않습니다. 또한 바인딩하기 전에 테이블에서 데이터를 가져와야한다고 생각합니다. 나는 데이터베이스 전문가는 아니지만 데이터베이스 테이블과의 직접 바인딩을 본 적이 없다.

1

표를 특정 테이블에 바인딩해야합니다.

데이터 어댑터를 통해 데이터 세트를 채운 다음 그리드를 바인딩하십시오.

cmd = New SqlCeCommand("select * from testtable", conn) 

If conn.State = ConnectionState.Closed Then conn.Open() 

datAdapter = New SqlCeDataAdapter(cmd) 
datSet = New DataSet 

datAdapter.Fill(datSet, "myTable") 

myBind = New BindingSource(datSet, "myTable") 

Me.grid.DataSource = myBind 
관련 문제