Visual C++ .NET/Database ADO.net/SqlDataReader

Материал из .Net Framework эксперт
Версия от 12:06, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Read scalar

 

#include "stdafx.h"
using namespace System;
using namespace System::Data;
using namespace System::Data::SqlClient;
using namespace System::Configuration;
void main()
{
    SqlConnection ^connection = gcnew SqlConnection();
    connection->ConnectionString = "SQLConnection";
    try{
       SqlCommand ^cmd = gcnew SqlCommand();
       cmd->Connection = connection;
       connection->Open();
       cmd->CommandType = CommandType::Text;
       cmd->CommandText = "SELECT COUNT(*) FROM Authors";
       Object ^NumAuthors = cmd->ExecuteScalar();
       Console::WriteLine("The number of Authors are {0}", NumAuthors);
       cmd->CommandType = CommandType::Text;
       cmd->CommandText = "SELECT SUM(AuthorID) FROM Authors";
       Object ^UselessNum = cmd->ExecuteScalar();
       Console::WriteLine("The Sum of AuthorIDs for fun is {0}", UselessNum);
    }
    catch (SqlException ^e)
    {
        Console::WriteLine("No connection the following error occurred: {0}",
            e->Message);
    }
    finally
    {
        connection->Close();
    }
}


Read SqlDataReader by column name

 

#include "stdafx.h"

using namespace System;
using namespace System::Data;
using namespace System::Data::SqlClient;
using namespace System::Configuration;
void main(){
    String ^Name = "Doors";
    SqlConnection ^connection = gcnew SqlConnection();
    connection->ConnectionString = "SQLConnection";
    try{
        SqlCommand ^cmd = gcnew SqlCommand();
        cmd->Connection = connection;
        cmd->CommandType = CommandType::Text;
        cmd->CommandText =String::Format("SELECT FirstName, LastName FROM Authors WHERE LastName = "{0}"",Name);
        connection->Open();
        SqlDataReader ^reader = cmd->ExecuteReader();
        while(reader->Read()){
            Console::WriteLine("{0} {1}",reader["FirstName"], reader["LastName"]);
        }
        reader->Close();
        // CREATE PROCEDURE dbo.StoriesWhereLastName(@LastName NVARCHAR(32) = NULL) AS
        //   SELECT StoryID, Headline, Story FROM Stories WHERE  LastName = @LastName
        // RETURN
        cmd->CommandType = CommandType::StoredProcedure;
        cmd->CommandText = "StoriesWhereLastName";
        cmd->Parameters->Add(gcnew SqlParameter("@LastName",SqlDbType::VarChar));
        cmd->Parameters["@LastName"]->Value = Name;
        reader = cmd->ExecuteReader();
        while(reader->Read())
        {
            Console::WriteLine(reader["StoryID"]);
            Console::WriteLine(reader["Headline"]);
            Console::WriteLine(reader["Story"]);
            Console::WriteLine();
        }
        reader->Close();
    }
    catch (SqlException ^e)
    {
        Console::WriteLine("No connection the following error occurred: {0}",
            e->Message);
    }
    finally
    {
        connection->Close();
    }
}