2016-10-15 8 views
-1

SQL Serverデータベースからすべてのレコードを取得したい。私はEntity FrameworkとC#を使用しています。特定の月または日のレコードをdatetimepicker値からストアドプロシージャに取得する

私は値をストアドプロシージャに渡すために使用しています。ストアドプロシージャは、datetimeピッカーからデータをピックアップするときに文字列全体を取得するときにdatetimeオブジェクトが必要ですが、日付のみが必要です。私はdatetimeオブジェクトを試みたが、

dtがDateTimeオブジェクトに値なしの成功の場所は、今の問題は、私はDateTimePickerの形式を変更しようとすると、それはそれを文字列に変換することではありませんが、私は日時を必要とOBJだけ日付

DateTime dt = dateTimePicker1.Value.Date; 
dataGridView1.DataSource = dbobj.sp_Select_Expense_Month(dt).ToList(); 

ストアドプロシージャに何かを渡すには?私を助けてください すべての解説者のための多くの祈り

私は多くの解決策を試みましたが、ストアドプロシージャのようなクエリで最も近いものでしたが、結果は表示されませんでしたが、ヘッダーはgridviewで呼び出されました。 SQL Server Management Studioのそれは、日付のそのタイプのみ

+0

あなたは、有効な日時書式を渡すことを確認してくださいあなたが渡している日付形式は何ですか? –

+0

SqlDbType.DateTimeをストアドプロシージャに渡すことはできませんか? –

+1

サイドノート:ストアドプロシージャのプレフィックス 'sp_'を**使用しないでください**。マイクロソフトは、[*ストアドプロシージャの名前付け*を参照してください](http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx)、およびあなたはいつか名前衝突のリスクを将来実行します。 [ストアドプロシージャのパフォーマンスにも悪い](http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix)単に 'sp_'を避け、他の何かを接頭辞として使うのが最善です。 –

答えて

3

あなたもsql

0123に datetimeから timeをトリミングすることができ、データベースの構造に任意のレコード

ALTER PROCEDURE sp_Select_Expense_Month 
    @dt dateTime 
AS 
BEGIN 
    SELECT * 
    FROM Expense 
    WHERE [DateTime] LIKE '@dt%' 
END 
GO 

せずに同じことの列名を表示します

SELECT * FROM Expense WHERE [DateTime] = cast(@dt as date) 

+0

しかし、どのように私はそれをストアプロシージャに渡すでしょう.... –

+0

@ NajamIslamはdatetimeとしてそれを渡す –

+0

非常についにそれは動作します......非常にかなりの祈りをありがとう。 –

関連する問題