मुझे नीचे पैरामीटर के बाध्यकारी के साथ कोई समस्या है। कनेक्शन काम करता है क्योंकि मैंने पैरामीटर का उपयोग किए बिना इसका परीक्षण किया था। हालांकि, निष्पादित होने से पहले क्वेरी का मूल्य अभी भी 'jsmith' के बजाय 'jusmith' का उपयोग कर रहा है।ओरेकल कॉमांड एसक्यूएल पैरामीटर बाध्यकारी
समस्या क्या है? क्या यह बाध्यकारी के आसपास जाने का सही तरीका नहीं है?
public static String GetFullName(String domainUser)
{
DataTable dT;
String fullName = "";
OracleConnection db = DatabaseAdapter.GetConn();
db.Open();
OracleCommand oraCommand = new OracleCommand("SELECT fullname FROM user_profile WHERE domain_user_name = '@userName'", db);
oraCommand.BindByName = true;
oraCommand.Parameters.Add(new OracleParameter("@userName", domainUser));
OracleDataReader oraReader = null;
oraReader = oraCommand.ExecuteReader();
if (oraReader.HasRows)
{
while (oraReader.Read())
{
fullName = oraReader.GetString(0);
}
}
else
{
return "No Rows Found";
}
oraReader.Close();
db.Close();
db.Dispose();
return fullName;
}
संपादित करें: मैंने पैरामीटर फ़ील्ड नाम में @ जोड़ा, लेकिन यह अभी भी इसे ठीक नहीं करता है।
यह एक अनुपलब्ध अभिव्यक्ति त्रुटि ORA-00936 देता है। यह डेटाबेस में एक वर्चर है, इसलिए मुझे लगता है कि "'होना चाहिए। –
@RyanSammut, मेरे अपडेट किए गए उत्तर की जांच करें, और जिस लिंक को मैंने पोस्ट किया है – Habib
यह मदद करेगा: http: // stackoverflow।com/प्रश्न/7316850/ओरा-00,936-लापता अभिव्यक्ति-जब-पढ़ने-से-डेटाबेस-साथ-dotConnect चालक। –