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

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

Read scalar

<source lang="csharp">

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

}

 </source>


Read SqlDataReader by column name

<source lang="csharp">

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

}

 </source>