Visual C++ .NET/Database ADO.net/SqlDataReader
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();
}
}