यह त्रुटि अक्सर ODP.NET के मामले में होती है। जब आपूर्ति किए गए पैरामीटर से मिलान करने वाले क्वेरी पैरामीटर की बात आती है तो समस्या OracleCommand के डिफ़ॉल्ट व्यवहार में होती है। डिफ़ॉल्ट रूप से स्थिति नाम . के बजाय विधि का उपयोग किया जाता है तरीका। व्यवहार में कमांड में जोड़े गए प्रत्येक पैरामीटर को नाम की परवाह किए बिना लिया जाएगा, और यदि आप क्वेरी टेक्स्ट में पैरामीटर को दो बार संदर्भित करते हैं तो आपको इसके लिए दो बार मान जोड़ना होगा!
इस डिफ़ॉल्ट व्यवहार को BindByName
. सेट करके ओवरराइड किया जा सकता है करने के लिए true
OracleCommad
. पर लेकिन SqlDataSource
. के मामले में आपके पास इसकी पहुंच नहीं है और आपको उचित क्रम में कई बार मान प्रदान करने की आवश्यकता है:
<asp:SqlDataSource ID="EDTDS" runat="server" ConnectionString="<%$ ConnectionStrings:Camstar %>" ProviderName="<%$ ConnectionStrings:Camstar.ProviderName %>" SelectCommand="select ..."
<SelectParameters>
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="startDate" SessionField="startDate" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="startDate" SessionField="startDate" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="endDate" SessionField="endDate" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="equipID" SessionField="equipID" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="startDate" SessionField="startDate" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="endDate" SessionField="endDate" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="equipID" SessionField="equipID" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="venmod" SessionField="venmod" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="handType" SessionField="handType" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="handID" SessionField="handID" />
<asp:SessionParameter ConvertEmptyStringToNull="False" Name="operID" SessionField="operID" />
</SelectParameters>
</asp:SqlDataSource>
(मुझे आशा है कि मैंने कोई कमी नहीं छोड़ी है)
एक विकल्प के रूप में आप BindByName
के साथ ODP.NET से व्युत्पन्न अपना स्वयं का प्रदाता बनाने पर विचार कर सकते हैं समायोजित।