C# 我无法从C.Net中的access数据库中获取单个记录

C# 我无法从C.Net中的access数据库中获取单个记录,c#,ms-access,datagridview,C#,Ms Access,Datagridview,我正在做图书馆管理系统的项目。我想通过select查询获取使用借书人号码的学生的所有数据。但我的代码无法正常工作,因为第40行dAdapter.FilldataTable;处的条件表达式中存在类型不匹配,因此出现了一些异常;。请帮帮我。这是我的密码。 谢谢各位: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing;

我正在做图书馆管理系统的项目。我想通过select查询获取使用借书人号码的学生的所有数据。但我的代码无法正常工作,因为第40行dAdapter.FilldataTable;处的条件表达式中存在类型不匹配,因此出现了一些异常;。请帮帮我。这是我的密码。 谢谢各位:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace LibraryManagment
{
public partial class ViewStudent : Form
{
    private OleDbConnection bookConn;
    private OleDbCommand oleDbCmd = new OleDbCommand();
    //parameter from mdsaputra.udl
    private String connParam = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\mini\database\library.mdb;Persist Security Info=False";



    public ViewStudent()
    {
        bookConn = new OleDbConnection(connParam);
        InitializeComponent();
    }

    private void btnView_Click(object sender, EventArgs e)
    {
        dataGridView1.DataSource = null;
        dataGridView1.Rows.Clear();
        dataGridView1.Refresh();

        OleDbDataAdapter dAdapter = new OleDbDataAdapter("select * from Student where BorrowerNo = '"+ this.txtBorrowerNo.Text +"';", connParam);
        OleDbCommandBuilder cBuilder = new OleDbCommandBuilder(dAdapter);

        DataTable dataTable = new DataTable();
        DataSet ds = new DataSet();

        dAdapter.Fill(dataTable);

        for (int i = 0; i < dataTable.Rows.Count; i++)
        {
            dataGridView1.Rows.Add(dataTable.Rows[i][0], dataTable.Rows[i][1], dataTable.Rows[i][2], dataTable.Rows[i][3], dataTable.Rows[i][4], dataTable.Rows[i][5], dataTable.Rows[i][6], dataTable.Rows[i][7]);
        }
    }


        private void ViewStudent_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'libraryDataSet.Student' table. You can move, or remove it, as needed.
           // this.studentTableAdapter4.Fill(this.libraryDataSet.Student);

        }


}

}

根据您评论中提到的错误,借款人编号属于类型编号,这似乎是导致问题的原因

OleDbDataAdapter dAdapter = new OleDbDataAdapter("select * from Student where BorrowerNo = "+ this.txtBorrowerNo.Text +";", connParam);

请注意,我已经删除了单引号。当数据类型为字符串时,使用单引号。

请详细说明,不要给出一些例外情况。我们无法在不知道失败原因的情况下为您提供帮助。您是否忘记在获取数据之前打开bookConn?您正在使一个简单的操作复杂化。将此异常读取为第40行dAdapter.FilldataTable处的条件表达式中的类型不匹配;在您的数据库中,借阅者的数据类型是什么?