मेरी संग्रहीत प्रक्रिया है:एंटरप्राइज़ लाइब्रेरी में ExecuteNonQuery से आउटपुट पैरामीटर मान कैसे प्राप्त करें (सी #)?
create Procedure spSetUser
(
@Name NVarchar(50),
@OrganicTitle NVarchar(30),
@UserName NVarchar(20),
@Password NVarchar(16),
@Result Int Output
)
As
Begin
Set @Result = -1
If Not Exists(Select UserId From dbo.Users Where [email protected])
Begin
Insert Into dbo.Users (Name,OrganicTitle,UserName,[Password])
Values(@Name,@OrganicTitle,@UserName,@Password)
Set @Result = SCOPE_IDENTITY()
End
Return
End
Go
और मेरी कक्षा (Microsft उद्यम पुस्तकालय में) है:
[DataObjectMethod(DataObjectMethodType.Insert)]
public Int32 SetUser(UserFieldSet Data)
{
Int32 Result = 0;
object[] values = new object[] { Data.Name, Data.OrganicTitle, Data.UserName, Data.Password, Data.UserId };
Result = Db.ExecuteNonQuery("spSetUser", values);
return Result;
}
परिणाम संग्रहीत प्रक्रिया निष्पादित की roweffected है, लेकिन मैं @Result का मूल्य प्राप्त करना चाहते हैं (उत्पादन प्रक्रिया का पैरामीटर), मैं इसे कैसे प्राप्त कर सकता हूं?
UserFieldClass है:
public class UserFieldSet
{
public Int32 UserId;
public String Name;
public String OrganicTitle;
public String UserName;
public String Password;
}
युक्ति: मैं के लिए @Result पाने के लिए इस कोड का उपयोग करना चाहिए पता है:
public Int32 SetUser(UserFieldSet Data)
{
Int32 Result = 0;
DbCommand DbCmd = Db.GetStoredProcCommand("spSetUser");
Db.AddInParameter(DbCmd, "@Name", DbType.String, Data.Name);
Db.AddInParameter(DbCmd, "@OrganicTitle", DbType.String, Data.OrganicTitle);
Db.AddInParameter(DbCmd, "@UserName", DbType.String, Data.UserName);
Db.AddInParameter(DbCmd, "@Password", DbType.String, Data.Password);
Db.AddOutParameter(DbCmd, "@Result", DbType.Int32, Int32.MaxValue);
Db.ExecuteNonQuery(DbCmd);
Result = (Int32)Db.GetParameterValue(DbCmd, "@Result");
return Result;
}
लेकिन मैं इस methd साथ प्राप्त कर सकते हैं:
Result = Db.ExecuteNonQuery("spSetUser", values);
क्या आपने कॉल के बाद मूल्यों [4] 'को देखने का प्रयास किया है? क्या यह अद्यतन हो जाता है? हालांकि: यह अच्छी तरह से हो सकता है कि उस हस्ताक्षर का उपयोग करते समय, सभी पैरामीटर केवल इनपुट के रूप में जोड़े जाते हैं। –