2014-04-23 31 views
0

我有一個Windows應用程序C#
在那裏我有一個datagridview1,我需要找回一個多表數據查詢 當數據被從表中檢索到的,它需要要還過濾的同時 的問題,我現在所面臨的數據沒有在LocalWindows加載,儘管表示無法加載數據到datagridview的C#的多表SQL查詢

問題是數據不會在DataGridView加載 我可以看到的數據是在visual studio中通過自動觀看加載到datagridview中 - 我在末尾給出了輸出 我做了什麼ng?

//CODE 
    private void getData(string selectquery) 
    { 
     try 
     { 
      // string qryText1 = @"SELECT FEE_HEAD.FEE_HEAD_NAME, FEE_AMOUNT.FEE_HEAD_AMOUNT, FEE_AMOUNT.CLASS_ID FROM FEE_AMOUNT INNER JOIN FEE_HEAD ON FEE_AMOUNT.FEE_HEAD_ID = FEE_HEAD.ID"; 
     SqlConnection con = new SqlConnection(@"Data Source=SRINATH-PC\SQLEXPRESS;Initial Catalog=BFMS;Integrated Security=True"); 

     SqlCommand command = new SqlCommand(selectquery, con); 
     con.Open(); 
     SqlDataAdapter dataAdapter1 = new SqlDataAdapter(); 
     dataAdapter1.SelectCommand = command; 
     DataTable dataT = new DataTable(); 
     dataAdapter1.Fill(dataT); 
     BindingSource bs = new BindingSource(); 
     bs.DataSource = dataT; 
     dataGridView1.DataSource = bs; 
     dataAdapter1.Update(dataT); 
     dataGridView1.Refresh();   
     con.Close(); 
     } 
     catch (SqlException ex1) 
     { 
      MessageBox.Show(ex1.ToString()); 
     } 
    } 

    //LOCAL WATCH VIEW  

    Count 28 int+  Current {System.Data.DataRowView} object {System.Data.DataRowView} 
    DataMember "" string 
    RowCount 29 int 
    RowHeadersBorderStyle Raised System.Windows.Forms.DataGridViewHeaderBorderStyle 
+0

如果你恰好綁定'dataT'到'dataGridView1.DataSource'什麼DataGridView中顯示的列?你的調試器監視器爲'dataGridView1.Rows.Count'顯示了什麼?對於'dataT.Rows.Count'? –

回答

0

我們需要使用使用

 dataGridView1.Columns[0].Name = "FEE_HEAD_NAME"; 
     ataGridView1.Columns[0].HeaderText = "FEE_HEAD_NAME"; 
     dataGridView1.Columns[0].DataPropertyName = "FEE_HEAD_NAME"; 

     dataGridView1.Columns[1].HeaderText = "FEE_HEAD_AMOUNT"; 
     dataGridView1.Columns[1].Name = "FEE_HEAD_AMOUNT"; 
     dataGridView1.Columns[1].DataPropertyName = "FEE_HEAD_AMOUNT"; 

不管怎麼說感謝您的答覆大家

0

代碼被正常使用

public Form1() { InitializeComponent(); string query = "select * from benefitplans"; getData(query); }

然後

private void getData(string selectquery) 
    { 
     try 
     { 
      // string qryText1 = @"SELECT FEE_HEAD.FEE_HEAD_NAME, FEE_AMOUNT.FEE_HEAD_AMOUNT, FEE_AMOUNT.CLASS_ID FROM FEE_AMOUNT INNER JOIN FEE_HEAD ON FEE_AMOUNT.FEE_HEAD_ID = FEE_HEAD.ID"; 
      SqlConnection con = new SqlConnection(@"Data Source=392;User id=sa; [email protected];Initial Catalog=Benefit;Pooling=False"); 


      SqlCommand command = new SqlCommand(selectquery, con); 


      con.Open(); 
      SqlDataAdapter dataAdapter1 = new SqlDataAdapter(); 
      dataAdapter1.SelectCommand = command; 
      DataTable dataT = new DataTable(); 
      dataAdapter1.Fill(dataT); 
      BindingSource bs = new BindingSource(); 
      bs.DataSource = dataT; 
      dataGridView1.DataSource = bs; 
      dataAdapter1.Update(dataT); 
      dataGridView1.Refresh(); 

      con.Close(); 
     } 
     catch (SqlException ex1) 
     { 
      MessageBox.Show(ex1.ToString()); 
     } 
    } 

enter image description here

+0

那麼在這種情況下應該做什麼!是否有任何格式錯誤 –

+0

不,我只是使用你的代碼,並寫一個查詢,並將其傳遞給方法和它的工作......再試一次可能它會爲你工作... –

0

嘗試更換這些線

 SqlDataAdapter dataAdapter1 = new SqlDataAdapter(); 
    dataAdapter1.SelectCommand = command; 
    DataTable dataT = new DataTable(); 
    dataAdapter1.Fill(dataT); 
    BindingSource bs = new BindingSource(); 
    bs.DataSource = dataT; 
    dataGridView1.DataSource = bs; 
    dataAdapter1.Update(dataT); 
    dataGridView1.Refresh();   
    con.Close(); 

 SqlDataAdapter dataAdapter1 = new SqlDataAdapter(); 
    dataAdapter1.SelectCommand = command; 
    DataSet dataS = new DataSet(); 
    dataAdapter1.Fill(dataS); 
    dataGridView1.DataSource = dataS; 
    con.Close(); 

希望,這可能會有幫助。

+0

這沒有幫助 是有任何其他方式可以在這裏使用!加載數據。**我需要它來繼續項目的其他組件** –

相關問題