2013-03-27 27 views
0

我正在構建一個c#應用程序,以將數據從我的數據庫顯示到datagridview。每個用戶都在第一個窗口中登錄。然後用戶可以註冊他的數據或可以看到他已經註冊的數據。C#datagridview查詢變量

但是,如果用戶登錄,他有一個用戶ID。我如何只顯示與用戶ID相對應的數據?

我目前這個,但它不工作。我看到所有用戶的所有數據。

SELECT Id, gebruikerid, datum, afstand, tijd FROM prestaties 
WHERE gebruikerid = '" + label1.Text + "' 

用戶標識的值保留在label1中。此值是一個變量

從datagridview嚮導在查詢生成器中輸入查詢時,出現查詢不正確的錯誤。

+1

偉大的SQL注入。 – Vladimir 2013-03-27 11:15:08

+0

儘量避免編寫內聯查詢,這是編程的錯誤做法 – Cris 2013-03-28 04:19:36

回答

0

即使這篇文章是從2年前,我會給你我的答案無論如何。

請在查詢中使用@的SQL參數:關於 「FillBy」 按鈕

SELECT Id, gebruikerid, datum, afstand, tijd FROM prestaties 
WHERE gebruikerid = @userid 

然後右擊並選擇 「查看代碼」:

enter image description here

然後,您將看到此事件處理程序:

private void fillBy1ToolStripButton_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     this.yourSqlAdapter.FillBy1(this.yourDatabaseDataSet.prestaties, ((int)(System.Convert.ChangeType(testToolStripTextBox.Text, typeof(int))))); 
    } 
    catch (System.Exception ex) 
    { 
     System.Windows.Forms.MessageBox.Show(ex.Message); 
    } 
} 

現在,將testToolStripTextBox.Text替換爲您的label1.Text,您的label1.Text中的值將用作SQL查詢中的參數。