2013-03-01 106 views
0

我在這裏有代碼顯示訪問數據庫中的所有數據。是否可以只顯示我的數據庫中的特定或選定的數據?在datagridview顯示選定的數據

這裏是我的代碼:

string connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\SISC-STRONGHOLD\MIS!\wilbert.beltran\SEEDBucksDbase.accdb"; 
string query = "SELECT * From TableAcct"; 
using (OleDbConnection conn = new OleDbConnection(connStr)) 
{ 
    using (OleDbDataAdapter adapter = new OleDbDataAdapter(query, conn)) 
    { 
     DataSet ds = new DataSet(); 
     adapter.Fill(ds); 
     dataGridView1.DataSource = ds.Tables[0]; 
     dataGridView1.Columns["UserPassword"].Visible = false; 

    } 
    conn.Close(); 
} 

的感謝! :)

+0

你是什麼意思選擇的數據?什麼是標準?這聽起來像你需要''SELECT'語句中的'WHERE'子句。如'SELECT * FROM TableAcct WHERE Username ='johndoe'' – 2013-03-01 06:21:07

+0

@AdamPlocher - 例如。我有員工表,當我在文本框中鍵入特定員工的姓氏,然後單擊搜索按鈕時,它將顯示與該員工相關的所有其他信息,如他的名字,地址等。 – bhert 2013-03-01 06:22:59

+0

是否將所有信息存儲在TableAcct表?例如, – 2013-03-01 06:23:30

回答

1

要查詢姓(假設表中的列被稱爲姓氏),試試這個:

string query = "SELECT * FROM Employee WHERE LastName='"+ textBox1.Text +"'"; 

當然,你必須要小心的SQL注入攻擊。我不熟悉Access中使用參數化查詢。

這是公開形式,還是隻針對您(或可信用戶)的內部形式?

1

你只需要在您查詢會爲你做的工作寫下來where條件,

以下是例子吧

string query = "SELECT col1,col2 From TableAcct where col1=value"; 

這將獲取滿足您調理,數據綁定電網控制。

而不是在選擇列表中的*給你要顯示的列的名稱。

用於獲取值形式的控制等的文本框

string query = "SELECT * FROM Employee WHERE LastName='"+ textBox1.Text +"'"; 

- 利用的SqlParameter的,以避免SQL注入攻擊,以上僅僅是一個例子。

+0

。我有員工表,當我在'文本框'中鍵入特定員工的'姓',然後點擊搜索按鈕,它將顯示與該員工相關的所有其他信息,如他的名字,地址等等在一個datagridview中:) – bhert 2013-03-01 06:25:26

+0

@bhert - 你可以這樣做它「string query =」SELECT * FROM Employee WHERE LastName ='「+ textBox1.Text +」'「;」 – 2013-03-01 06:30:53

+0

謝謝你。它的工作:) – bhert 2013-03-01 06:38:30

0

string query =「SELECT(SelectedColumnNames)From TableAcct Where LastName =(LastName)」;

除了在查詢中使用*進行搜索,還可以輸入所需的列,例如: - string query =「選擇phno,地址,FirstName From TableAcct where LastName ='」+ txt1.text +「'」;