我有这段代码:
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
string query = "select AName, FirstName, LastName, Address, CellPhone from ClientsT, AnimalsT where AppT.hasSchedule = @T and Month(AppT.ScheduleApp)= @MonthVacine and YEAR(AppT.ScheduleApp)= @YearVacine and AnimalT.AnimalID = AppT.AnimalID and AnimalsT.ClientID = ClientsT.ClientID";
command.CommandText = query;
command.Parameters.Add("@T", OleDbType.Boolean).Value = true;
command.Parameters.Add("@MonthVacine", OleDbType.Char).Value = month;
command.Parameters.Add("@YearVacine", OleDbType.Char).Value = year;
OleDbDataReader reader = command.ExecuteReader();
listView2.Items.Clear();
while (reader.Read())
{
ListViewItem item = new ListViewItem(reader["AName"].ToString());
item.SubItems.Add(reader["FirstName"].ToString());
item.SubItems.Add(reader["LastName"].ToString());
item.SubItems.Add(reader["Address"].ToString());
item.SubItems.Add(reader["CellPhone"].ToString());
listView2.Items.Add(item);
}
reader.Close();
connection.Close();
当我运行程序时,我收到一条消息说
“没有给出一个或多个必需参数的值”。
我想要的是,在AppT(约会表)中搜索是否有预定的任命(hasSchedule),然后检查是否匹配我提供的年份和月份(对当天不感兴趣),之后我转到AnimalsT以使用AnimalID获取AName(动物名称),然后我转到客户端以使用ClientID获取他们的信息FistName,LastName,Address,CellPhone。
答案 0 :(得分:0)
以下代码行在您添加的参数的副本上设置值:
command.Parameters.Add("@T", OleDbType.Boolean).Value = true;
command.Parameters.Add("@MonthVacine", OleDbType.Char).Value = month;
command.Parameters.Add("@YearVacine", OleDbType.Char).Value = year;
要解决此问题,请尝试使用此代码:
command.Parameters.Add("@T", OleDbType.Boolean);
command.Parameters.Add("@MonthVacine", OleDbType.Char);
command.Parameters.Add("@YearVacine", OleDbType.Char);
command.Parameters["@T"].Value = true;
command.Parameters["@MonthVacine"].Value = month;
command.Parameters["@YearVacine"].Value = year;