I’m taking some information from data base and i want to use it in calculations. But due to what i’written, i’m not able to convert it to number. I recieve System::Object^. here is the part of code:
OleDbConnection ^ cnNwind = gcnew OleDbConnection();
cnNwind-> ConnectionString =
L"Provider = Microsoft.Jet.OLEDB.4.0;"
L"Data Source = C:\\temp\\A.mdb";
try
{
// Open the database
cnNwind->Open();
Console::WriteLine(L"Connected to database successfully!");
// Count the customers
OleDbCommand ^ cmProducts = gcnew OleDbCommand();
cmProducts->CommandText = L"SELECT ID FROM Table1";
cmProducts->CommandType = CommandType::Text;
cmProducts->Connection = cnNwind;
// Print the result
Object ^ numberOfProducts = cmProducts->ExecuteScalar();
Console::Write(L"Number of products: ");
Console::WriteLine(numberOfProducts);
}
catch (OleDbException ^ pe)
{
Console::Write(L"Error occurred: ");
Console::WriteLine(pe->Message);
}
// Close the connection
if (cnNwind->State != ConnectionState::Closed)
{
cnNwind->Close();
}
Console::WriteLine(L"The database connection is closed...");
I want to use numberOfProducts as a digit. I mean type double or integer. How can i transform it?
Simply use
safe_castto cast theObject^to the appropriate type. This is covered in detail on this page: How to: Use safe_cast in C++/CLISince there can only be one underlying type (and I don’t know what it is in your case), only one of these will work — the other will throw an exception. Point being, your first step is to determine the actual underlying type (presumably
double,float, orint).