2017-01-09 101 views
0

我正在開發一個學校開發項目,我對開發很陌生。我一直在網上閱讀,但無法找到我正在尋找的答案。創建一個列表,它可以作爲gridview的參數

到目前爲止,我已經在我的Windows窗體應用程序中創建了一個列表框,我希望從我的列中選擇所有值,這些應該可以作爲參數在我的dataGridView中基於參數顯示數據。

我創建了70%的項目,這個功能就剩下了。我的數據庫在Azure中,我可以寫入它並添加新行,但是當我運行它時,我無法讀取任何內容到我的應用程序。

代碼爲listview,起初我只是想能夠選擇。稍後以某種方式將選擇的參數寫入一個變量,我可以在我的dataGridView中用作條件。

這是我gridview到目前爲止的代碼,我只想顯示其中的所有數據,但它沒有顯示任何東西。

namespace MyNamespace 
{ 
public partial class CompanyForm : Form 
{ 
    public CompanyForm() 
    { 
     InitializeComponent(); 
    } 
    //Connection String 
    string cs = ConfigurationManager.ConnectionStrings["ConnectionString"]. 
    ConnectionString; 
    private void createCompany_Click_1(object sender, EventArgs e) 
    { 
     if (textBoxCompanyName.Text == "") 
     { 
      MessageBox.Show("Fill information"); 
      return; 
     } 
     using (SqlConnection con = new SqlConnection(cs)) 
     { 
      //Create SqlConnection 
      con.Open(); 
      SqlCommand cmd = new SqlCommand 
      (
      "insert into dbo.Company (companyName) 
      values(@companyName)", con); 
      cmd.Parameters.AddWithValue 
      (
      "@companyName", 
      textBoxCompanyName.Text); 
      SqlDataAdapter adapt = new SqlDataAdapter(cmd); 
      DataSet ds = new DataSet(); 
      adapt.Fill(ds); 
      MessageBox.Show("GJ"); 

     } 
    } 

    // The code that is not filling my datagrid 
    private void dataEmployees_Load() 
    { 
     using (SqlConnection con = new SqlConnection(cs)) 
     { 
      con.Open(); 
      SqlCommand cmd = new SqlCommand 
      (
       "Select fname,ename FROM dbo.Users", con 
      ); 
      SqlDataReader dr = cmd.ExecuteReader(); 
      DataTable dt = new DataTable(); 
      dt.Load(dr); 
      dataEmployees.DataSource = dt; 
     } 
    } 
    } 
} 

我的連接字符串正在工作它已經能夠將數據插入到我有的表中。

回答

0

爲什麼你網格沒有顯示任何數據的問題是你試圖將SqlDataReader綁定到它。這不起作用,因爲網格不支持DataSource。

作爲DataSource您需要的是DataTable, IList<T>, IBindingList<T>。在你的情況下,DataTable將是最簡單的解決方案。試試看:

protected void DataEmployees() 
{ 
    using (SqlConnection con = new SqlConnection(cs)) 
    { 
    con.Open(); 
    SqlCommand cmd = new SqlCommand 
    (
     "Select firstname,lastname FROM employees",con 
    ); 
     SqlDataReader dr = cmd.ExecuteReader(); 
     DataTable dt = new DataTable(); 
     dt.Load(dr); 
     dataEmployees.DataSource = dt; 
    } 
} 

請注意,方法在C#中寫成大寫。此外請注意,如果您使用使用塊,則不需要手動關閉連接。在使用塊的末尾,它會自動關閉/處置。

+0

謝謝你的回答。但不幸的是它仍然無法正常工作。我不知道爲什麼,我的datagrid只是空的。 –

+0

@StephenSmith請在dt.Load(dr)後設置斷點。並檢查是否有一些條目。 – Sebi

+0

代碼從未運行到斷點,它似乎是這樣的問題:/ –

相關問題