Я использую Microsoft.Practices.EnterpriseLibrary
для доступа к базе данных SQL Server в своем C# -коде. У меня есть метод, который вызывает хранимую процедуру и отправляет параметр в хранимую процедуру, и эта хранимая процедура возвращает строку (имя пользователя и пароль).Возвращаемое значение в методе, вызывающем хранимую процедуру
Я не уверен, как вернуть значение в этом методе.
Это мой код:
public Model.Login GetUsernameandPasswordByPartnerID(int partnerId)
{
Model.Login login;
string myConnection = System.Configuration.ConfigurationManager.ConnectionStrings[connectionName].ToString();
SqlDatabase db = new SqlDatabase(myConnection);
using (DbCommand command = db.GetStoredProcCommand("AS_AuthenticateByPartner"))
{
db.AddInParameter(command, "partnerID", DbType.String, partnerId);
try
{
login = db.ExecuteScalar(command); //error on this line
// rtn = Message("Success", "Acquisition", "GetLogin", "Service", db.ExecuteScalar(command).ToString());
}
catch (Exception ex)
{
}
db = null;
return login;
}
}
и мой Model.login
public class Login
{
public string username;
public string password;
}
Я не знаю, как должна быть эта строка:
login= db.ExecuteScalar(command);
теперь я получаю сообщение об ошибке так как вы не можете явно преобразовать объект в Model.login
.
спасибо, что оно сработало отлично. – Alma
Если вы хотите получить данные как объекты с помощью Enterprise Library, вам следует рассмотреть возможность использования устройств доступа к данным. См. [Извлечение данных как объектов] (http://msdn.microsoft.com/en-us/library/ff664742 (v = pandp.50) .aspx) для описания (это для версии 5, но в равной степени применимо к версии 6) , –