2013-10-19 4 views
5

मैं dataetimepicker'smonth and year value की तुलना करके आईडी 0 प्राप्त करने की कोशिश कर रहा हूं, Date/Time के डेटाबेस कॉलम में संग्रहीत दिनांक के साथ, नीचे प्रश्न है कि मैं ऐसा करने के लिए उपयोग कर रहा हूं लेकिन यह मुझे निम्नलिखित त्रुटि दिखा रहा है इस लाइन पर while (rs.Read())त्रुटि: एक या अधिक आवश्यक पैरामीटर के लिए कोई मान नहीं दिया गया

त्रुटि

No value given for one or more required parameters. 

कोड

public int GetDrID_MonthWise(string DrName,int month,int year, int refDrID) 
{ 
    int data = 0; 
    try 
    { 
     string sql = "Select d.DoctorID From Doctor_Master d,Patient_registration p where d.LastName + ' ' + d.FirstName = '" + DrName + "' AND datepart(mm,p.[RegDate])[email protected] AND datepart(yyyy,p.[RegDate])[email protected] AND p.DoctorID=" + refDrID; 
     cmd = new OleDbCommand(sql, acccon); 
     cmd.Parameters.AddWithValue("@month", month); 
     cmd.Parameters.AddWithValue("@year", year); 
     rs = cmd.ExecuteReader(); 
     while (rs.Read()) 
     { 
      data = Convert.ToInt32(rs[0]); 
     } 
    } 
    catch (Exception err) 
    { 
     MessageBox.Show(err.Message.ToString()); 
    } 
    return data; 
} 

मैं इस तरह के महीनों और साल के मूल्यों को पारित कर रहा हूं, जहां मैं गलती कर रहा हूं?

int month = dateTimePickerMonth.Value.Month; 
int year = dateTimePickerMonth.Value.Year; 
+0

क्या अन्य मूल्यों के बारे में में सुधार? शायद DrName या refDrID @ – VladL

+0

से संभव डुप्लिकेट http://stackoverflow.com/questions/19197022/getting-error-no-value-given-for-one-or-more-required-parameters से शुरू हो रहा है – Coder

उत्तर

3

अपने प्रश्न में गलती नहीं है, कृपया इस तरह करते हैं,

string sql = "Select d.DoctorID From Doctor_Master d,Patient_registration p where d.LastName + ' ' + d.FirstName = '" + DrName + "' AND datepart("m",p.[RegDate])[email protected] AND datepart("yyyy",p.[RegDate])[email protected] AND p.DoctorID=" + refDrID; 

नोट: आप के साथ "एमएस एक्सेस में DatePart में समारोह और महीने के लिए केवल एक मीटर" संलग्न दिनांक अंतराल किया है। यदि आपने yyyy और m को "" संलग्न नहीं किया है, तो सिस्टम को यह माना जाता है कि yyyy और m पैरामीटर और इन पैरामीटर के लिए अपेक्षित मान हैं।

आप सुश्री-Aceess एसक्यूएल ध्यान में रखते हुए आपकी क्वेरी को निष्पादित तो यह इस संदेश "दर्ज paremeter मान" दिखाई देगा।

enter image description here

1

अपनी क्वेरी में कोई त्रुटि है, कृपया देखना है lastname स्तंभ के लिए हस्ताक्षर करने के लिए कोई बराबरी नहीं

where d.LastName + ' ' + d.FirstName = ' 
1

मैं तुम्हें 3 मुद्दों

  • जांच करने की आवश्यकता लगता है इस int महीने = dateTimePickerMonth.Value.Month की जांच करें; int year = dateTimePickerMonth.Value.Year; मान शून्य या खाली नहीं हैं

  • दिनांक और समय एक डेटाटाइम डेटाटाइप है, तो आप इस मान को पूर्णांक में क्यों असाइन करते हैं? तो यह विभिन्न प्रारूप में परिवर्तित हो गया है।

  • और अपने d.LastName स्तंभ मान शून्य है, आप खाली मान देना है, तो इस तरह

d.LastName = '"+ string.Empty + " ',.. ..... 

कोशिश इन शर्तों जाँचें और फिर कोशिश करें।

0

या सीधे शब्दों में बनाओ जहां भाग में स्ट्रिंग

sql = "Select d.DoctorID From Doctor_Master d,Patient_registration p where d.LastName + ' ' + d.FirstName = '" + DrName + "' AND Format(p.[RegDate],mm)[email protected] AND Format(p.[RegDate],'yyyy')[email protected] AND p.DoctorID=" + refDrID; 
संबंधित मुद्दे

 संबंधित मुद्दे