今天要说的是adapter.Fill(DataSet)中缺参数的问题

OleDbDataAdapter  adp=new OleDbDataAdapter();  参数有4种写法, 当需要sql语句传参的时候就用 cmd 的参数,不然会提示少参数,因为用其它的,sql语句没有办法传参,所以会提示

adb.Fill(ds);至少一个参数没有被指定值


而通过OleDbDataAdapter adp=new OleDbDataAdapter(OleDbCommand  cmd); 则可以通过 cmd.parameters.Add();加入参数


 string txtRoomNum = txtHNum.Text;

            try
            {
                string Conn = ConfigurationManager.ConnectionStrings["Conn"].ConnectionString;
                using (OleDbConnection conn = new OleDbConnection(Conn))
                {
                    conn.Open();
                   // string strSelect = @"SELECT [房间号],[状态], [出租日期], [到期日期], [电话], [身份证号], [租金], [押金], [姓名] FROM [HouseDB] " + " WHERE [房间号]='"+txtRoomNum+"'";
                    string strSelect = @"SELECT [房间号],[状态], [出租日期], [到期日期], [电话], [身份证号], [租金], [押金], [姓名] FROM [HouseDB] " + " WHERE [房间号]=?";
                    OleDbCommand cmd = new OleDbCommand(strSelect);
                   
                   
                    cmd.Parameters.Add("@房间号", OleDbType.VarWChar, 30).Value = txtRoomNum;
                    // cmd.Parameters.Add




                    cmd.Connection = conn;
                    object obj = cmd.ExecuteScalar();
                    if (obj == null)
                    {
                        MessageBox.Show("现在没有出租出去房间");
                        conn.Close();
                        return;
                    }
                    OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    //adapter.Fill(ds); //将数据添加到DataSet中
                    adapter.Fill(ds);


                    dgv.DataSource = ds.Tables[0];
                    conn.Close();
                }




            }
            catch (System.Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
            }


        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值