我想在textbox里面输入一个订单编号,就能在datagridview里面显示那条编号的记录。
可是程序老是说orderID上下文不存在,怎么回事啊。
string strconnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
            strconnection += @"db.mdb";
            string strCommand = "select 订单.订单ID ,订单号 ,公司名称,付款金额,姓名,开始日期"
                + "from 订单,客户,付款额,雇员,订单明细 where 订单.订单ID=订单明细.订单ID and "
                + "订单.客户ID=客户.客户ID and 订单.雇员ID=雇员.雇员ID and 订单.订单ID=付款额.订单ID"
                + "and 订单.ID=?";
        
           this.txtQuery.Text = orderID;
            
            DataSet ds=new DataSet(strCommand);
            OleDbConnection conn = new OleDbConnection(strconnection);
            OleDbCommand cmd = new OleDbCommand(strCommand,conn);
            cmd.Parameters.Add("订单.ID", orderID);
            cmd.Connection = conn;
            conn.Open();
            cmd.ExecuteNonQuery();
            this.dgvOrder.DataSource = ds;
            conn.Close();     
 

解决方案 »

  1.   

    this.txtQuery.Text = orderID; 赋值方向反了吧?应该是:
    orderID=this.txtQuery.Text;
      

  2.   

    订单.ID=?
    我指的orderID就是这个问号的,那怎么定义啊
      

  3.   

    听说oledb中赋参数是这样的是吗
      

  4.   

    那怎么定义数据库里的一个字段与填在textbox里面的字段对应呢?
    拜托了
      

  5.   


    string strconnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="; 
                strconnection += @"db.mdb";  string strCommand = "select 订单.订单ID ,订单号 ,公司名称,付款金额,姓名,开始日期" 
                    + "from 订单,客户,付款额,雇员,订单明细 where 订单.订单ID=订单明细.订单ID and " 
                    + "订单.客户ID=客户.客户ID and 订单.雇员ID=雇员.雇员ID and 订单.订单ID=付款额.订单ID" 
                    + " and 订单.ID="+ this.txtQuery.Text.ToString();//如果ID号是字符就这样写 
                                 //" and 订单.ID='"+ this.txtQuery.Text.ToString()+"'";//
                DataSet ds=new DataSet(strCommand); 
                OleDbConnection conn = new OleDbConnection(strconnection); 
                OleDbCommand cmd = new OleDbCommand(strCommand,conn); 
                cmd.Parameters.Add("订单.ID", orderID); 
                cmd.Connection = conn; 
                conn.Open(); 
                cmd.ExecuteNonQuery(); 
                this.dgvOrder.DataSource = ds; 
                this.dgvOrder.DataBind();
                conn.Close();      
    没有经过调试,这个事件你写在哪里就得注意了。
      

  6.   

    重写一下CommandText:
     
               string strCommand = "select 订单.订单ID ,订单号 ,公司名称,付款金额,姓名,开始日期"
                    + "from 订单,客户,付款额,雇员,订单明细 where 订单.订单ID=订单明细.订单ID and "
                    + "订单.客户ID=客户.客户ID and 订单.雇员ID=雇员.雇员ID and 订单.订单ID=付款额.订单ID"
                    + "and 订单.ID=@ID";             string orderID=this.txtQuery.Text;添参数时候这样:
                cmd.Parameters.Add("@ID", orderID);
      

  7.   


    string strconnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb"; 
    string          strconnection1 = "select 订单.订单ID ,订单号 ,公司名称,付款金额,姓名,开始日期" 
                    + "from 订单,客户,付款额,雇员,订单明细 where 订单.订单ID=订单明细.订单ID and " 
                    + "订单.客户ID=客户.客户ID and 订单.雇员ID=雇员.雇员ID and 订单.订单ID=付款额.订单ID" 
                    + " and 订单.ID="+ this.txtQuery.Text.ToString();//如果ID号是字符就这样写 
                                 //" and 订单.ID='"+ this.txtQuery.Text.ToString()+"'";//
                DataSet ds=new DataSet(strCommand); 
                OleDbConnection conn = new OleDbConnection(strconnection); 
                OleDbCommand cmd = new OleDbCommand(strCommand,conn); 
                cmd.CommandText=strconnection1 ;
                cmd.CommandType=ComandType.Text;
                cmd.conn.Open();
                cmd.ExecuteNonQuery(); 
                this.dgvOrder.DataSource = ds; 
                this.dgvOrder.DataBind();
                cmd.conn.Close();      不好意思,没看清你的代码。
    那么多的错误。这是更改之后的。
      

  8.   


    string strconnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb"; 
    string          strconnection1 = "select 订单.订单ID ,订单号 ,公司名称,付款金额,姓名,开始日期" 
                    + "from 订单,客户,付款额,雇员,订单明细 where 订单.订单ID=订单明细.订单ID and " 
                    + "订单.客户ID=客户.客户ID and 订单.雇员ID=雇员.雇员ID and 订单.订单ID=付款额.订单ID" 
                    + " and 订单.ID="+ this.txtQuery.Text.ToString();//如果ID号是字符就这样写 
                                 //" and 订单.ID='"+ this.txtQuery.Text.ToString()+"'";//
                DataSet ds=new DataSet(strCommand); 
                OleDbConnection conn = new OleDbConnection(strconnection); 
                OleDbCommand cmd = new OleDbCommand(conn); 
                cmd.CommandText=strconnection1 ;
                cmd.CommandType=ComandType.Text;
                cmd.conn.Open();
                SqlDataAdapter da=new SqlDataAdapter(cmd);
                DataSet ds=new DataSet();
                da.Fill(ds);
                this.dgvOrder.DataSource = ds; 
                this.dgvOrder.DataBind();
                cmd.conn.Close();      
    我靠,看错两次了。
    这次不会再漏了吧?
      

  9.   

    我想撞墙了。
    DataSet ds=new DataSet(strCommand); 
    这句去掉。
      

  10.   

    再也不在这里面贴着更改了,下次放.net环境里更改。看都没看清。
    人太马虎了。
      

  11.   

    string strconnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
                strconnection += @"db.mdb";
                string strCommand = "select 订单.订单ID ,订单号 ,公司名称,付款金额,姓名,开始日期"
                    + "from 订单,客户,付款额,雇员,订单明细 where 订单.订单ID=订单明细.订单ID and "
                    + "订单.客户ID=客户.客户ID and 订单.雇员ID=雇员.雇员ID and 订单.订单ID=付款额.订单ID"
                    + "and 订单.ID=@orderid";
            
                int orderID=this.txtQuery.Text;
                
                DataSet ds=new DataSet(strCommand);
                OleDbConnection conn = new OleDbConnection(strconnection);
                OleDbCommand cmd = new OleDbCommand(strCommand,conn);
                cmd.Parameters.Add("@orderid", orderID);
                cmd.Connection = conn;
                conn.Open();
                cmd.ExecuteNonQuery();
                this.dgvOrder.DataSource = ds;
                conn.Close();   
      

  12.   

    别中了弹子啊。他写出来的方法可不只是一个错误。
    int orderID=this.txtQuery.Text; 
    LS的这句通编译通过?
      

  13.   

    LZ根本一点也不了解ADO.net。
    签定完毕,建议去看看.framwark上关于这些的知识。
      

  14.   

     OleDbCommand cmd = new OleDbCommand(conn); 
    这句是不是少东西了啊
      

  15.   

    少什么?在前面生成conn的时候就把连接数据库的字符串赋给它了,后面就不用再赋了!
    OleDbConnection conn = new OleDbConnection(strconnection); 
      

  16.   

    那个不要吗,就是strCommand中的内容
      

  17.   

    OleDbCommand cmd = new OleDbCommand(conn);  
    不行,这句老是报错
      

  18.   

    楼上改成这样:
       OleDbCommand cmd = new OleDbCommand(strCommand,conn);