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

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

Calling Stored Procedure

 
#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();
    }
}