C#数据库编程问题,会的速度进!

来源:百度知道 编辑:UC知道 时间:2024/07/13 00:56:52
textbox 的TextChanged事件,运行的时候出异常,说数据类型不匹配
private void txt_BookID_TextChanged(object sender, EventArgs e)
{
try
{
conn.Open();
string sql = "SELECT * FROM BOOKINFO WHERE BookID = '" + Convert.ToInt32(txt_BookID.Text) + " '";
OleDbCommand cmd = new OleDbCommand(sql, conn);
OleDbDataReader dr = cmd.ExecuteReader();//这行提示出异常
//如果读取成功,读取DataReader中的第一行

if (dr.Read())
{
//将各列的值对应显示在label控件中

lblISBN.Text = dr["ISBN"].ToString();

lblBookName.Text = dr["Name"].ToString();

lblAuthor.Text = dr["Author"].ToString();

lblPublisher.Text = dr["Publisher"].ToString();

lblPrice.Text = dr[&quo

首先你的数据库表 BookInfo的BookID字段是什么类型,如果为数值类型或自动编号的,就不能加单引号了,如果为字符型,应该加单引号。
如果为数值型,那么你的那个Sql语句应该改成这样:你可以试试
string sql = "SELECT * FROM BOOKINFO WHERE BookID = " + Convert.ToInt32(txt_BookID.Text) + "";

+ Convert.ToInt32(txt_BookID.Text) +
这句错了
你已经转成整型了怎么还能用字符串连接呢
直接用:
string sql = "SELECT * FROM BOOKINFO WHERE BookID = " + txt_BookID.Text.ToString();
如果bookid不是整型的就用:
string sql = "SELECT * FROM BOOKINFO WHERE BookID = '" + txt_BookID.Text.ToString() + "'";