c#
  • winforms
  • combobox
  • member
  • 2012-07-19 2 views 1 likes 
    1

    나는이 오류를 받고 있어요에 결합 할 수 없습니다 : 잘못되었는지 모르겠어요 새 디스플레이 멤버 C#을는 새로운 디스플레이 멤버 C#을

     sConn = new SqlConnection(sStr); 
         daSched = new SqlDataAdapter("Select Subject from Schedules where Username = '" + lblUsername.Text + "'", sConn); 
         dsSched = new DataSet(); 
         daSched.Fill(dsSched, "Schedules"); 
         dsSched.Tables["Schedules"].PrimaryKey = new DataColumn[] { dsSched.Tables["Schedules"].Columns["ScheduleID"] }; 
    
         cbxSubject.DataSource = dsSched.Tables["Schedules"]; 
         cbxSubject.DisplayMember = "Schedule"; 
         cbxSubject.ValueMember = "ScheduleID"; 
         cbxSubject.Text = "Choose Subject"; 
    

    에 결합 할 수 없습니다. 이것은 테이블 미리보기입니다. 일정 : http://i47.tinypic.com/1zzoz5z.png

    어떤 도움을 주셔서 감사합니다.

    답변

    2

    당신은 "일정"라는 테이블의 필드를 가지고 있지 않기 때문에 컨트롤이 일정이라고 찾을 수있는 멤버가 없습니다, 당신은

    ScheduleID 만 주제 선택한 당신, 그래서 이미 기본 키 '에 SQL 쿼리를 변경 낫다 ...

    Select ScheduleID, Subject From (또한 당신은 아마 그것을 parameterize한다)

    이 줄을 ->dsSched.Tables["Schedules"].PrimaryKey = new DataColumn[] { dsSched.Tables["Schedules"].Columns["ScheduleID"] };가 필요하지 않습니다. 나는 당신이 당신의 디스플레이 회원이 "제목"또한

    되고 싶어 믿지 무엇을 말할 수에서

    - 당신이해야 열기 연결 (난 당신의 게시물에 표시되지 않음) - 더 이상적

    뭔가 같은 사용하여 성명을 포장 :

    using (SqlConnection con = new SqlConnection(connectionString)) 
        { 
         string userName = lblUsername.Text; 
         con.Open(); 
         var adapter = new SqlDataAdapter("Select ScheduleID, Subject From 
               Schedules Where Username = @username", conn); 
         adapter.Parameters.Add("@username", SqlDbType.VarChar, 50, userName) 
         var dsSched = new DataSet(); 
         adapter.Fill(dsSched); 
    
         cbxSubject.DataSource = dsSched.Tables[0]; 
         cbxSubject.DisplayMember = "Subject"; 
         cbxSubject.ValueMember = "ScheduleID"; 
         cbxSubject.DataBind(); 
    
        } 
    
    +0

    잘 작동, 감사합니다. –

     관련 문제

    • 관련 문제 없음^_^