Asp.net 使用datetime时如何按年份搜索

Asp.net 使用datetime时如何按年份搜索,asp.net,sql-server-2008,search,datetime,Asp.net,Sql Server 2008,Search,Datetime,我在Visual Studio 2008中有一个程序。 一切正常,但我无法按日期搜索我的datagridview。 我需要能够键入年份,然后显示具有该年份的所有记录。 我使用tableadapter添加了按姓名搜索的搜索按钮,但当我对日期执行相同操作时,它会显示“没有为一个或多个必需参数提供值”。 我使用datetime选择器获取日期的值 我尝试的代码是 SELECT memberno, firstname, middlename, lastname, gender, ema

我在Visual Studio 2008中有一个程序。
一切正常,但我无法按日期搜索我的
datagridview

我需要能够键入年份,然后显示具有该年份的所有记录。
我使用
tableadapter
添加了按姓名搜索的搜索
按钮
,但当我对日期执行相同操作时,它会显示“没有为一个或多个必需参数提供值”。
我使用
datetime选择器
获取日期的值

我尝试的代码是

SELECT        
  memberno, firstname, middlename, lastname, gender, emailadd, address, phone, datejoined
FROM
  Members
WHERE        
 (DATEPART(y, datejoined) = ?)

您可以按如下方式使用
datediff
函数

  SELECT DATEDIFF(year, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
结合它

 SELECT 
      memberno, firstname, middlename, lastname, gender, 
      emailadd, address, phone, datejoined 
 FROM 
     Members 
 WHERE 
    DATEDIFF(year, '2005-12-31 23:59:59.9999999', yourdate)=0;
编辑1 如果您从文本框(您要搜索的年份)中获取值,那么您可以这样做

 SELECT 
      memberno, firstname, middlename, lastname, gender, 
      emailadd, address, phone, datejoined 
 FROM 
     Members 
 WHERE 
    DATEDIFF(year, datejoined, textboxvalue)=0;
编辑2
int Year=Int32.Prase(textbox1.text);
var date1=新的日期时间(年份,1,1,4,5,6);
var date2=新日期时间(年份+1,1,1,4,5,6);
日期>=日期1和<日期2

那么第一个和第二个代码应该放在哪里?我使用tableadapter,这样代码就可以放在查询生成器中,并成为toolstrip按钮。我需要能够问用户一年,他/她想搜索。哦!谢谢我试试看不幸的是,它不起作用。它显示相同的消息“一个或多个所需参数没有给定值”。代码中的textboxvalue是多少?我只是按原样输入,但它不起作用。我真的很需要你的帮助。提前谢谢!您每年在文本框中输入什么?比如说2013年等等?是的。当我添加查询时,它应该自动有一个文本框,就像其他查询一样。
  int Year=Int32.Prase(textbox1.text);     
  var date1 = new DateTime(Year, 1, 1, 4, 5, 6);
  var date2=new DateTime(year+1,1,1,4,5,6);

  date >= date1 and < date2