2013-01-02 6 views
0

이 질문에 대한 답변을 찾고 있습니다. 나는 문제가 어디 있는지 모른다. Visual Studio에서 아무런 문제 나 오류가 보이지 않지만 프로그램을 실행하고 데이터베이스에 무언가를 추가하려고 할 때 응용 프로그램이 충돌하고 VS가 내 테이블이 존재하지 않는다고 알려줍니다. 이 이벤트는 무언가를 추가하기위한 것입니다. 이 테이블 코드 (Wpis.cs)입니다지정한 테이블이 존재하지 않습니다.

private void addBtn_Click(object sender, RoutedEventArgs e) 
{ 
     using (WpisyDataContext BazaDanych = new WpisyDataContext(strConnectionString)) 
     { 
      if (!BazaDanych.DatabaseExists()) 
      { 
       BazaDanych.CreateDatabase(); 
       MessageBox.Show("BazaDanych Database Created Successfully!!!"); 
      } 

      Wpis newWpis = new Wpis 
      { 

       RecordID = index_box.Text, 
       NameRec = name_box.Text.ToString(), 
       BeneficiaryRec = beneficiary_box.Text.ToString(), 
       PriceRec = price_box.Text.ToString(), 
       DeadlineRec = deadline_box.Text.ToString(), 
       DescriptionRec = description_box.Text.ToString() 
      }; 

      BazaDanych.Wpisy.InsertOnSubmit(newWpis); 
      BazaDanych.SubmitChanges(); 
      MessageBox.Show("Recoed Added Successfully!!!"); 
      if (NavigationService.CanGoBack) 
      { 
       NavigationService.GoBack(); 
      } 
     } 
    } 
} 

:

내 코드입니다

using System.Data.Linq.Mapping; 
namespace ******** 
{ 
    [Table] 
    public class Wpis 
    { 
     [Column(IsPrimaryKey = true, IsDbGenerated = true)] 
     public string RecordID 
     { 
      get; 
      set; 
     } 
     [Column(CanBeNull = true)] 
     public string NameRec 
     { 
      get; 
      set; 
     } 
     [Column(CanBeNull = true)] 
     public string BeneficiaryRec 
     { 
      get; 
      set; 
     } 
     [Column(CanBeNull = true)] 
     public string PriceRec 
     { 
      get; 
      set; 
     } 
     [Column(CanBeNull = true)] 
     public string DeadlineRec 
     { 
      get; 
      set; 
     } 
     [Column(CanBeNull = true)] 
     public string DescriptionRec 
     { 
      get; 
      set; 
     } 
    } 
} 

는 그리고이 데이터 컨텍스트 (WpisyDataContext.cs)입니다 :

using System.Data.Linq; 

namespace ************* 
{ 
    public class WpisyDataContext : DataContext 
    { 
     public WpisyDataContext(string connectionString) 
      : base(connectionString) 
     { 
     } 
     public Table<Wpis> Wpisy 
     { 
      get 
      { 
       return this.GetTable<Wpis>(); 
      } 
     } 
    } 
} 

이 연결 문자열 :

public static string strConnectionString = @"Data Source=isostore:/DevDB.sdf"; 

제발, 더 이상 인내심을 가지십시오. 감사.

+2

당신의 주위를 둘러보십시오. 예외를 보여 주거나 기록하십시오. DB에 무엇이 있는지를 알려주는 방법이 없으므로 테이블이 실제로 누락 될 수 있습니다. –

+0

'CreateDatabase' 메소드가'wpis' 테이블 이름을 생성합니까? 맵핑 코드에 Name 속성을 지정하지 않았으므로 테이블 이름이 클래스 (Wpis) – Steve

답변

0

CreateDatabase()을 사용하는 경우 .NET에서 데이터베이스 테이블을 엔티티로 생성했는지 확인하십시오. EntityFramework가 Plural 이름을 가진 테이블을 생성하고 Entity가 단일 이름으로 생성되기 때문입니다.

만들어진 테이블 이름이 예상 한 것과 같은지 확인하십시오.

+0

이어야합니다. @Steve : 데이터베이스와 테이블 "Wpis"가 실제로 가져 왔습니다. 폴란드 언어 (: P)를 모르는 나머지 사람들에게 'Wpis'는 'Record'를 의미하고 'Wpisy'는 'Records'를 의미합니다. 다른 생각있어? –

관련 문제