1

Visual Studio 2008にプログラムがあります。日付
で検索できないことを除いて、すべてが機能していdatagridviewます。
年を入力できるようにする必要があります。そうすると、その年のすべてのレコードが表示されます。
以前は名前と名前で検索tableadapterする検索を追加buttonsしていましたが、日付で同じことを行うと、「1つ以上の必須パラメーターに値が指定されていません」と表示されます。
以前datetime pickerは日付の値を取得していました。

私が試したコードは

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

1 に答える 1

0

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 = new DateTime(Year, 1, 1, 4, 5, 6);
  var date2=new DateTime(year+1,1,1,4,5,6);

  date >= date1 and < date2
于 2013-03-01T05:46:28.623 に答える