2010-10-19 14 views
5

मैं कैसे आदेश की दृष्टि से चयन करने में SQL सर्वर 2005 के लिए सी # DateTime मूल्यों (FromCreateDate और ToCreateDate) पारित करते हैं?SQL सर्वर 2005 में सी # डेटटाइम का पैरामीटर पास करना?

परिणाम सेट CreateDate कॉलम FromDateDate और ToCreateDate के बीच होना चाहिए।

+0

खैर पैरामीटर प्रकार सेट कर सकते हैं, यह ratherly एक हैरान स्थिति है: मैं में एक रिपोर्ट बनाने के लिए चाहते हैं = @: एक तरीका है कि मेरे उपयोगकर्ता FromCreateDate के लिए एक तिथि में प्रवेश करता है, तो फिर मैं createDate स्तंभ की तुलना, अगर नहीं, तो मैं केवल ToCreateDate मूल्य (यानी साथ createdate स्तंभ तुलना < 'कहां createDate = ToCreateDate) – odiseh

+1

तो आप की तरह कुछ की जरूरत है> fromDate और '(@toDate नल या createDate <= @toDate है)। –

उत्तर

5

वास्तव में एक ही जैसे आप किसी भी अन्य पैरामीटर ... निश्चित रूप से यह आप अपने डेटा का उपयोग कैसे कर रहे हैं पर निर्भर करता है, लेकिन हम एक SqlCommand तुम सिर्फ एक नामित पैरामीटर का उल्लेख था ग्रहण करता है, तो (@fromDate/@toDate) TSQL में, और आदेश के लिए नामित जोड़ें (.Value = theDate के साथ) SqlParameter रों:

DateTime end = DateTime.Today, start = end.AddDays(-7); // the last week 
using (var conn = new SqlConnection(connectionString)) 
using (var cmd = conn.CreateCommand()) 
{ 
    conn.Open(); 
    cmd.Parameters.AddWithValue("@from", start); // fine for DateTime; for strings, use more explicit param 
    cmd.Parameters.AddWithValue("@to", end); // construction to avoid lots of different-length plans 
    cmd.CommandText = "SELECT COUNT(1) FROM [Users] WHERE LastSeen >= @from AND LastSeen < @to"; 
    int count = (int) cmd.ExecuteScalar(); 
} 
LINQ के साथ

आदि तुम सिर्फ क्वेरी में इसका इस्तेमाल करना चाहते हैं, यानी

int count = db.Users.Count(user => user.LastSeen>=start && user.LastSeen<end); 

मैं एक का उपयोग कर रहा सरल सह बस इसे सरल रखने के लिए उदाहरणों में unt; जाहिर है आप SELECT blah एक VIEW आदि भी से ...

+0

@Mark: मैं स्ट्रिंग के रूप में दो मानों भेजने और फिर उन्हें datetime में तब्दील संग्रहीत प्रक्रिया में होना चाहिए है? – odiseh

+0

नहीं; बस अपने 'डेटटाइम' चर को 'yourParameter.Value' में सेट करें। मैं एक उदाहरण जोड़ूंगा ... –

8

बस को SqlDbType.DateTime

जैसे

SqlCommand cmd = new SqlCommand("Select * From dbo.MyView Where createDate = @FromDate", SqlCon); 
cmd.Parameters.Add(new SqlParameter(@FromDate, SqlDbType.DateTime)); 
cmd.Parameters["@FromDate"].Value = fromDate;