我无法从 C#.Net 中的访问数据库中获取单个记录
I am not able to fetch single record from access database in C#.Net
我正在做图书馆管理系统的项目。我想通过 select 查询使用借款人编号获取有关学生的所有数据。但是我的代码不起作用它在第 40 行 dAdapter.Fill(dataTable); 处给出了一些异常,因为标准表达式中的类型不匹配。请帮我。这是我的代码。
谢谢 :)
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);
}
}
}
从您评论中提到的错误来看,borrower no 是 number 类型,这似乎是导致问题的原因。
OleDbDataAdapter dAdapter = new OleDbDataAdapter("select * from Student where BorrowerNo = "+ this.txtBorrowerNo.Text +";", connParam);
注意我已经删除了单引号。当您的数据类型为字符串时,您使用单引号。
我正在做图书馆管理系统的项目。我想通过 select 查询使用借款人编号获取有关学生的所有数据。但是我的代码不起作用它在第 40 行 dAdapter.Fill(dataTable); 处给出了一些异常,因为标准表达式中的类型不匹配。请帮我。这是我的代码。 谢谢 :)
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);
}
}
}
从您评论中提到的错误来看,borrower no 是 number 类型,这似乎是导致问题的原因。
OleDbDataAdapter dAdapter = new OleDbDataAdapter("select * from Student where BorrowerNo = "+ this.txtBorrowerNo.Text +";", connParam);
注意我已经删除了单引号。当您的数据类型为字符串时,您使用单引号。