从C#中的本地数据库中的单个列检索数据

时间:2014-10-28 11:25:57

标签: c# database datagridview

我正在尝试创建一个本地数据库文件(用于学校作业)并且我已设法使数据库正常工作(我可以向其中添加新数据等),数据库文件采用.mdf格式

有一件事我被困住了。我很难解释它是如何工作的(我最近开始编程)所以我将发布一个链接到我用来制作我的数据库的视频: video here

我让它工作到我能够在某个数据库列中搜索值(它搜索颜色)。执行搜索后,DataGridView中只能看到一行。然后我必须检索同一行中另一列的值(在本例中是text / a string)。

This is the project I'm working on,我无法在此发布图片,因为我没有足够高的声誉。

我将解释每一步发生的事情:

  1. 在按钮和标签之间的文本框中,我可以输入要搜索的颜色。按下按钮后,它将在您在2处看到的列中搜索该值。
  2. 执行搜索后,只有一行显示我搜索过的值。
  3. 然后它应该从该行的'Voornaam'列(这意味着名称)获取值/数据。
  4. 列中的名称应放在您在4处看到的文本框中。

    // btnZoeken is the search button I use at 1
    private void btnZoeken_Click(object sender, EventArgs e)
    {
        /* Klantengegevens is the name of my table which means something like customer data, 
        tbGevraagdekleur is the textbox that I use at 1. */
    
        this.klantengegevensTableAdapter.Fillby(this._Lock_IT_DatabaseDataSet.Klantengegevens, tbGevraagdekleur.text);
    
        /* tbVoornaam is the textbox I used at 4., the name that has been placed in the 'Voornaam'
           column should become visible in this textbox.
        */
    
        tbVoornaam.text = this.klantengegevensTableAdapter.GetData().VoornaamColumn.ToString();
    }
    
  5. 代码确实在4的文本框中放置了一个值,但文本框的文本与列的名称(即'Voornaam')的值相同。它应该是像Mark或Joshua这样的实际名称。

    我希望我解释得足够好,你不应该注意你在表格中看到的所有其他按钮。

1 个答案:

答案 0 :(得分:1)

我会尝试这样的事情:

 DataTable theTable = new DataTable();
 this.klantengegevensTableAdapter.Fill(theTable);
 tbVoornaam.text = theTable.Rows[0]["Voornaam"].ToString(); 

你得到的原因" Voornaam"因为文本是因为这是存储在变量VoornaamColumn中的常量值,当你真正想要的是该列的值时,上面的代码会为你提供数据集中第一行的值.- @ krystanhonour

编辑试试这个:

DataSet da= new DataSet();
DataTable theTable = new DataTable();
da.Tables.Add(theTable);
     this.klantengegevensTableAdapter.Fill(da.Tables[0]);
     tbVoornaam.text = da.Tables[0].Rows[0]["Voornaam"].ToString();