Visual C++ .NET/Database ADO.net/Stored Procedure

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Calling Stored Procedure

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::Data; using namespace System::Data::SqlClient; void main() {

   SqlConnection^ myConnection = nullptr;
   
   try
   {
       myConnection = gcnew SqlConnection("Data Source=localhost;Database=UltraMax; UID=sa; PWD=");        
       myConnection->Open();
       
       SqlCommand^ myCommand = gcnew SqlCommand("GetMusicByGenre",myConnection);
       myCommand->CommandType = CommandType::StoredProcedure;
       
       SqlCommandBuilder::DeriveParameters(myCommand);
       for ( int i = 0; i < myCommand->Parameters->Count; i++ )
           Console::WriteLine("Name={0}; Type={1}; Direction={2}",
               myCommand->Parameters[i]->ParameterName,
               myCommand->Parameters[i]->DbType,
               myCommand->Parameters[i]->Direction);
       
       myCommand->Parameters->Clear();
       myCommand->Parameters->Add("@Genre", SqlDbType::Char);
       myCommand->Parameters["@Genre"]->Value = "Classical";
       SqlParameter^ returnValue = gcnew SqlParameter("RETURN_VALUE",SqlDbType::Int);
       returnValue->Direction = ParameterDirection::ReturnValue;
       myCommand->Parameters->Add(returnValue);
       
       myCommand->ExecuteNonQuery();
       Console::WriteLine("Count = {0}",myCommand->Parameters["RETURN_VALUE"]->Value);
   }
   catch(Exception^ e)
   {
       Console::WriteLine(e->Message);
   }
   finally
   {
       myConnection->Close();
   }

}

 </source>