2013-03-01 78 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 +“'”;