2012-07-03 1 views
0

У меня есть некоторые проблемы с приведенными ниже кодами. Тот, который дает мне ошибку, - rdr = cmd.ExecuteReader();, и я понятия не имею, почему. Код должен проверить, есть ли какие-либо записи в таблице Items. Любая помощь будет оценена по достоинству.rdr = cmd.ExecuteReader(), дающий несоответствие типа данных в выражении критериев

protected void Page_Load(object sender, EventArgs e) 
{ 
    OleDbConnection mDB = new OleDbConnection(); 
    mDB.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data source=" 
    + Server.MapPath("~/App_Data/Database.mdb"); 
    OleDbCommand cmd; 
    OleDbDataReader rdr; 
    int intOrderNo = int.Parse(Session["sOrderNo"].ToString()); 
    String strSql = "SELECT iProdID FROM Items WHERE iOrdersID = "+ intOrderNo; 
    cmd = new OleDbCommand(strSql, mDB); 
    mDB.Open(); 
    rdr = cmd.ExecuteReader(); 
    Boolean booRows = rdr.HasRows; 
    if (booRows) 
    { 
     ShoppingCartLabel.Text = "Your Shopping Cart"; 
     if (Session["sFlag"] == "T") 
     { 
      BizCheckOutButton.Visible = true; 
      CusCheckOutButton.Visible = false; 
     } 
     else 
     { 
      BizCheckOutButton.Visible = false; 
      CusCheckOutButton.Visible = true; 
     } 
    } 
    else 
    { 
     ShoppingCartLabel.Text = "Your Shopping Cart is empty"; 
     CusCheckOutButton.Visible = false; 
     BizCheckOutButton.Visible = false; 
    } 
    mDB.Close(); 
} 
+2

Пожалуйста, смотрите http://xkcd.com/327/ –

+0

Он работает через 'int.Parse', это не проблема. – Blorgbeard

+0

Является ли 'iOrdersID' числовым полем? – Steve

ответ

0

Я не вижу, как вы добавляете в свой код параметры. Можете ли вы добавить параметры и проверить? Мол,

OleDbCommand cmd = new OleDbCommand(<your sql query>, <your sql connection>); 
cmd.Parameters.Add("order_no", OleDbType.Int); 
cmd.Parameters["order_no"].Value = intOrderNo; 
+0

О! Я вижу! Спасибо, сейчас работает! –

+0

Рад узнать, что я могу вам помочь! – CodeMad