2013-03-28 98 views
0

我目前在C#中构建应用程序。在这个应用程序中,人们给出标签中的值,并将这些值保存在数据库中。这也适用于此刻。我想要的是以下内容:datagridview的自定义查询

人们可以在datagridview中看到自己的值。如果我使用datagridview的向导来做到这一点,我不能选择label2.Text(这是客户ID)。

我下面使用的查询如下:

SELECT * FROM prestaties WHERE gebruikerid = '" + label1.Text + "'"; 

但它不工作。我在我的数据网格中看不到任何东西。

对不起,我的英语不好。我希望你能理解我。

下面我已经有了代码,但它不工作


using System; 
    using System.Collections.Generic; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Linq; 
    using System.Text; 
    using System.Windows.Forms; 

    using System.Data.OleDb; 

    namespace Eindopdracht 
    { 
     public partial class resultaten : Form 
     { 
      public resultaten() 
      { 
       InitializeComponent(); 
       dataGridView1.Show(); 

          } 


      private string username; 

      public void displaydata(String ddata) 
      { 

       OleDbConnection conn = new OleDbConnection(@"provider= microsoft.jet.oledb.4.0;data source=C:\\Users\\Jeffrey\\Desktop\\Eindopdracht WOE\\Eindopdracht\\sample.mdb"); 
       string select = "SELECT * FROM prestaties WHERE gebruikerid = '" + label2.Text + "'"; 

       conn.Open(); 
       OleDbDataAdapter dataAdapter = new OleDbDataAdapter(select, conn); 
       DataSet ds = new DataSet(); 
       dataAdapter.Fill(ds); 
       dataGridView1.DataSource = ds.tables[0]; 
       conn.Close(); 
      } 





       public void setUsername(String name) 
      { 
       username = name; 

       label1.Text = username; 
       setID(); 
      } 

      public void setID() 
      { 
       OleDbConnection vcon = new OleDbConnection(@"provider= microsoft.jet.oledb.4.0;data source=C:\\Users\\Jeffrey\\Desktop\\Eindopdracht WOE\\Eindopdracht\\sample.mdb"); 
       string selectie = "SELECT id FROM inlog WHERE Username='" + label1.Text + "'"; 

       OleDbCommand vcom1 = new OleDbCommand(selectie, vcon); 
       vcon.Open(); 
       vcom1.ExecuteNonQuery(); 

       OleDbDataReader dr = null; 
       dr = vcom1.ExecuteReader(); 
       while (dr.Read()) 
       { 
        var waarde = dr.GetValue(0); 
        label2.Text = waarde.ToString(); 


       } 
+0

我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –

+0

您注释掉了这一行:'//dataGridView1.DataSource = ds.tables [0];'。附注:SQL注入,使用参数。而不是查询数据库,您可以改为使用DataView。 – LarsTech

+0

是的,我评论说,因为它不适用于该行。 – haassiej

回答

0

我不知道,如果我的代码是100%正确的。我自己建立了这个。如果我在InitializeComponent();旁边的开头使用类displayData,我会收到错误消息。