2014-03-02 15 views
0

我想從SQL Server 2008中創建的不同表中加載數據的基礎上從組合框中選擇的值。我已經編寫了相同的查詢,它在SQL Server 2008中完美工作,但不會在datagridview中加載任何數據,但會顯示數據庫中所需數據字段的標題。JOIN查詢在sql server 2008中工作,無法加載datagridview中的數據只顯示標題

我完全被編輯了。沒有錯誤。應用程序完全正常。即使查詢本身也能夠在查詢構建器中執行。

因此,我請求你們全部讓我擺脫這個問題。預先感謝您的幫助。

下面是代碼:

public partial class ViewTimeTable : Form 
{ 
    SqlCommand cm = new SqlCommand(); 
    DataAccess da = new DataAccess(); 
    int d_id, y_id; 
    public ViewTimeTable() 
    { 
    InitializeComponent(); 
    }  
    private void btnLoad_Click(object sender, EventArgs e) 
    { 
    try 
    { 
     d_id = Convert.ToInt32(cmbDepartment.SelectedValue); 
     y_id = Convert.ToInt32(cmbDepartment.SelectedValue); 
     SqlDataAdapter dap=null; 

     string query = "SELECT TimeTable.Day,TimeTable.FromTime,TimeTable.ToTime, 
     Teachers.TName,Subject.SubName FROM (TimeTable INNER JOIN Teachers ON 
     TimeTable.T_id = Teachers.T_id INNER JOIN Subject ON TimeTable.Sub_id = 
     Subject.Sub_id) Where TimeTable.D_id=" + d_id + " AND TimeTable.Y_id=" + 
     y_id + ""; 
     cm.CommandText = query; 
     da.Action(cm); 

     dap=da.GetDataAdapter(cm); 

     DataTable table = new DataTable(); 
     dap.Fill(table); 

     dataGridView1.DataSource = table; 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
    } 
    } 
+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+0

做任何其他更簡單的查詢工作? – RBarryYoung

+0

你確定你已連接到同一個數據庫嗎?而且,你可以編輯問題以在變量替換之後包含查詢(打印'query')。我懷疑問題是數據庫或變量被插入到字符串中。 –

回答

0

當我閱讀代碼,我看到:

d_id = Convert.ToInt32(cmbDepartment.SelectedValue); 
    y_id = Convert.ToInt32(cmbDepartment.SelectedValue); 

我的眼睛,這些設置d_idy_id爲相同的值。我懷疑你希望他們設置不同的值。

您的查詢不起作用的原因是因爲沒有行滿足條件。如果在變量替換之後打印出查詢,問題就會很明顯。

+0

謝謝戈登!這麼簡單的錯誤,但我無法發現它。這就是測試如何工作的各種眼睛可以發現各種錯誤。有時甚至我們犯了愚蠢的錯誤。對不起,感謝您的幫助。 – geeksal

相關問題