使用select语句在datagridview表中显示数据

时间:2015-03-14 19:13:05

标签: c# asp.net datagridview

我想知道如何使用从Select语句中找到的信息填充DataGridView。这是我的选择按钮的事件:

private void SelectCust(object sender, EventArgs e)
{
    OleDbConnection conn = null;
    conn = new OleDbConnection(
    "Provider=Microsoft.ACE.OLEDB.12.0; " + "Data Source=" + "c:/inetpub/ftproot/ora103/App_Data/Fashion.accdb");
    conn.Open();
    OleDbCommand cmd = new OleDbCommand("Select * from Customer where CustNum = @MyCust ", conn);
    OleDbDataAdapter adapter = new OleDbDataAdapter();
    adapter.SelectCommand = cmd;
    DataTable dt = new DataTable();
    adapter.Fill(dt);
    dataGridView1.DataSource = dt;
    dataGridView1.DataBind();

    if (dt.Rows.Count > 0)
    {

    }

    conn.Close();
}

我想使用“if”语句插入我从Customers表中收集的信息,并填充DataGridView。但是,我无法将DataGridView连接到我的Microsoft Access数据库(称为Fashion.accdb)。这就是我的DataGridView现在的样子(我知道它并不多):

<asp:GridView ID="dataGridView1" runat="server" EnableModelValidation="True">
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"></asp:SqlDataSource>

修改

这是错误:

  

异常详细信息:System.Data.OleDb.OleDbException:没有给出值   一个或多个必需参数。

我的想法是,我将在客户编号中键入文本框。然后我会点击提交按钮。然后事件将从输入的文本框中检索该数字,获取与该客户有关的数据库中的信息,并将其显示在GridView中

1 个答案:

答案 0 :(得分:1)

oledb参数与sql server不同。

...where CustNum = @MyCust

需要

...where CustNum = ? (or: where CustNum = [?])

设置适配器命令后,设置参数:

cmd.Parameters.Add("@CustNum", OleDbType.Integer, 15).Value = yourValue;
希望有所帮助。