2013-06-13 3 views
-1

나는 끌고 데이터 소스 테이블을 감소, 예상대로 나는 상자를 가지고 :C#의 업데이트 된 DataGridView 쿼리

enter image description here

여기에 두 가지 이상의 행, "id""owner_id"있다합니다. 텍스트 상자에 지정된 특정 값을 삽입하려면 "owner_id"이 필요합니다. DataGridView을 사용하여 행을 추가 할 때 실행되는 쿼리는 어디서 편집 할 수 있습니까? 이 테이블의 owner_id는 다른 테이블의 기본 키에 대한 외래 키입니다. 기본 키는 항상 textbox에서 찾을 수 있으므로 textbox 값을 가져오고 owner_id로 설정하는 쿼리가 필요합니다.

+0

입니다 param mode = twoWay를 사용하여 열 내용 및 텍스트 상자 내용 –

+0

@ user2480500 "id"와 "owner_id"는 "행"이라고 말했습니까? 그래서, 당신은 열이나 행을 추가하고 싶습니까? – Edper

+0

Gridview를 클릭하고 상자에 이름을 쓰고 Enter를 클릭하여 행을 추가 할 수 있습니다. 그것은 owner_id 열이 null이 될 수 없다는 오류를 내게합니다. 실행되는이 쿼리를 편집해야하므로 테이블에 삽입되지만 owner_id = idTextBox.text를 설정합니다. – user2480500

답변

0
업데이트

은 :

을 당신은 아마 RowsAdded 이벤트를 사용할 수 있습니다 귀하의 갱신을 바탕으로하지만, 사용자가 당신은 또한 행을 추가 할 때 당신은 다음 Form1_Load

dataGridView1.RowsAdded += new DataGridViewRowsAddedEventHandler(dataGridView1_RowsAdded); 

먼저 아마를 초기화 할 필요가 마지막 행의 DataGrid에 텍스트 상자의 값을 추가하십시오. 의 당신의 "OWNER_ID는"아마 같을 것이다 첫 번째 열에입니다 가정 해 봅시다 :

void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) 
    { 
     dataGridView1.Rows[dataGridView1.Rows.Count - 2].Cells[0].Value = textBox1.Text; 

    } 

그냥 DataGridView에있는 경우 정직이 당신의 바인딩 테이블을 갱신하지 않을 있지만

.

이 같은 행을 추가 한 후 일시적으로 숨겨진 열을 표시 할 수 있습니다 효과를 보려면 :

void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) 
    { 
     dataGridView1.Columns[0].Visible = true; 
     dataGridView1.Rows[dataGridView1.Rows.Count - 2].Cells[0].Value = textBox1.Text; 

    } 

DataGridView 속성이 AllowUserToAddRows라는 이름의 방법에 의해 확인 당신은 바인딩을 검색 할 수 있습니다 True

+0

그건 내 코드가 어떻게 생겼는지는 모르겠지만 코드에 그 중 하나도 없다. "DataSources"의 테이블을 드래그 앤 드롭하여 폼에 넣었고 owner_id 열을 숨 깁니다. – user2480500