प्रदान नहीं किया गया था मुझे कोड के फोल्डविंग टुकड़े में कोई समस्या है। मैं निम्नलिखित कोड निष्पादित करने के लिए एक पैरामीटर (List<SqlParameter>
) पास कर रहा हूं।SqlCommand.Parameters.AddWithValue समस्या: प्रक्रिया या फ़ंक्शन एक्स पैरामीटर @Y की अपेक्षा करता है, जिसे
जब यह SQL सर्वर निष्पादित करता है तो एक त्रुटि फेंकता है कि यह जांच एक पैरामीटर की अपेक्षा करता है जो प्रदान नहीं किया गया था। मुझे यह त्रुटि पता है और इसे समझते हैं, और कोड के माध्यम से कदम उठाने पर मैं देख सकता हूं कि cmdExecuteReader
ऑब्जेक्ट में सही नाम और मान वाले पैरामीटर का संग्रह है। क्या समस्या हो सकती है?
public SqlDataReader ExecuteReader(string storedProcedure, List<SqlParameter> parameters = null)
{
SqlCommand cmdExecuteReader = new SqlCommand()
{
CommandType = System.Data.CommandType.Text,
Connection = conn,
CommandText = storedProcedure
};
if (parameters != null)
{
foreach (SqlParameter param in parameters)
{
cmdExecuteReader.Parameters.AddWithValue(param.ParameterName, param.Value);
}
}
if (conn.State == System.Data.ConnectionState.Closed)
conn.Open();
return cmdExecuteReader.ExecuteReader();
}
+1। मैं व्यक्तिगत रूप से AddWithValue का उपयोग नहीं करता, डेटाटाइप (और आकार) को स्पष्ट रूप से परिभाषित करने के लिए पसंद करता हूं - अन्यथा आप गलत धारणाओं (जैसे .NET स्ट्रिंग मानों को एनवीएआरएआरएआर के रूप में पारित किया जा रहा है) के साथ समाप्त हो सकते हैं, जिन्हें मैं पागल हूं – AdaTheDev