2013-03-22 46 views
0

例如:如果管理員可以查看網格中的所有數據。當以教師身份登錄時,他/她只能在網格中查看他/她的數據,其他人員必須隱藏其中。通過更改sql查詢我能夠根據facultyID(主)篩選,但顯示網格中的位置因while循環而發生更改。建議我一個解決方案有什麼方法可以修復datagridview中的數據位置嗎?

private void FillDisGrid() 

    { 
     int a1 = 0; 
     int colNo = 1; 
     if (conn.State == ConnectionState.Open) { conn.Close(); } 
     conn.Open(); 
     SqlCommand cmd = new SqlCommand(); 
     SqlDataReader dr; 
     cmd.Connection = conn; 
     cmd.CommandText = "select Subjectname,FacultyID from timetabletab where FacultyID='" + comboBox2.Text + "' and semester='" + comboBox3.Text + "' order by rno"; 
     dr = cmd.ExecuteReader(); 
     while (dr.Read()) 
     { 
      if (colNo % 6 == 0) { colNo = 1; a1 = a1 + 2; } 
      dataGridView1.Rows[a1].Cells[colNo].Value = dr.GetValue(0).ToString(); 
      dataGridView1.Rows[a1 + 1].Cells[colNo].Value = dr.GetValue(1).ToString(); 
      colNo++; 

     } 
    } 
+0

我不明白代碼應該做什麼。一個真實世界的例子會很好 – Alex 2013-03-22 12:41:07

+0

想象一下學校的時間表。如果我是一名學生,我可以查看我的班級整個時間表。如果我是一名老師,我只能在時間表中查看我的主題。在這裏,我可以通過更改查詢,但顯示主題的位置也在變化。如何保持固定 – user2189778 2013-03-22 12:52:36

回答

0

所以你想要一個網格,可以顯示不同的數據和標題基於哪個人正在查看?如果是這樣,你可以嘗試這一點,當你從數據庫中獲取數據時,讓它回到數據表或者自定義對象中,將它綁定到網格。但設置網格AutoGenerateColumns = false,因此它只會根據綁定的內容生成標題。

相關問題