OleDbDataAdapter adp=new OleDbDataAdapter(); 参数有4种写法, 当需要sql语句传参的时候就用 cmd 的参数,不然会提示少参数,因为用其它的,sql语句没有办法传参,所以会提示
而通过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);
}
}