📄 tmdo2005.cpp
字号:
#include "StdAfx.h"
#include "TMDO2005.h"
CTMDO2005::CTMDO2005(void)
{
m_SqlConn = nullptr;
//请将****换成你对应的数据库信息。
m_strConnectionString = "Application Name=mymymy;user id=**;password=**;initial catalog=db;Server=server;Connect Timeout=200;pooling=true;min pool size=10;max pool size=11;connection reset=true";
}
CTMDO2005::CTMDO2005(CString ConnectionString)
{
m_SqlConn = nullptr;
m_strConnectionString = gcnew String(ConnectionString);
}
CTMDO2005::~CTMDO2005(void)
{
Close();
}
void CTMDO2005::Close()
{
try{
if(m_SqlConn != (Object^)nullptr && m_SqlConn->State != System::Data::ConnectionState::Closed)
m_SqlConn->Close();
m_SqlConn=nullptr;
}
catch(Exception ^e){
TRACE(CString(e->ToString()));
}
}
bool CTMDO2005::Open()
{
bool re = false;
try{
if(m_SqlConn == (Object^)nullptr){
m_SqlConn = gcnew SqlConnection(m_strConnectionString);
}
if(m_SqlConn->State!= System::Data::ConnectionState::Open)
m_SqlConn->Open();
re = true;
}
catch(Exception ^e){
TRACE(CString(e->ToString()));
}
return re;
}
gcroot<SqlDataAdapter^> CTMDO2005::GetSqlDataAdapter()
{
if(!Open())return NULL;
gcroot<SqlDataAdapter^> re = gcnew SqlDataAdapter();
return re;
}
bool CTMDO2005::RunProcedure(CString ProcName, gcroot<IDataParameter^> parameters[])
{
bool re = false;
gcroot<SqlCommand^> SqlCmd;
try {
if (!Open()) return false;
SqlCmd = gcnew SqlCommand();
SqlCmd->Connection = m_SqlConn;
SqlCmd->CommandType = CommandType::StoredProcedure;
SqlCmd->CommandText = gcnew String(ProcName);
for(int i=0; i<sizeof(parameters)/sizeof(parameters[0]); i++){
SqlCmd->Parameters->Add(parameters[i]);
}
SqlCmd->ExecuteNonQuery();
SqlCmd = nullptr;
re = true;
}
catch(Exception ^e) {
TRACE(CString(e->ToString()));
}
return re;
}
int CTMDO2005::ExecuteScalar(CString sql)
{
int re = -1;
gcroot<SqlCommand^> SqlCmd;
try {
if (!Open()) return -1;
SqlCmd = gcnew SqlCommand(gcnew String(sql), m_SqlConn);
re = Convert::ToInt32(SqlCmd->ExecuteScalar());
SqlCmd = nullptr;
Close();
}
catch(Exception ^e) {
TRACE(CString(e->ToString()));
}
return re;
}
gcroot<SqlDataReader^> CTMDO2005::ExecuteReader(CString sql)
{
gcroot<SqlDataReader^> re=nullptr;
gcroot<SqlCommand^> SqlCmd;
try {
if (!Open()) return nullptr;
SqlCmd = gcnew SqlCommand(gcnew String(sql), m_SqlConn);
re = SqlCmd->ExecuteReader();
SqlCmd = nullptr;
}
catch(Exception ^e) {
TRACE(CString(e->ToString()));
}
return re;
}
int CTMDO2005::ExecuteNonQuery(CString sql)
{
int re = -1;
gcroot<SqlCommand^> SqlCmd;
try {
if (!Open()) return -1;
SqlCmd = gcnew SqlCommand(gcnew String(sql), m_SqlConn);
re = SqlCmd->ExecuteNonQuery();
SqlCmd = nullptr;
}
catch(Exception ^e) {
TRACE(CString(e->ToString()));
}
return re;
}
bool CTMDO2005::ExecuteSqlTran(CString sqlarray[])
{
bool re = false;
gcroot<SqlCommand^> SqlCmd;
gcroot<SqlTransaction^> tx;
try {
if (!Open())return false;
tx = m_SqlConn->BeginTransaction();
for(int i=0; i<sizeof(sqlarray)/sizeof(sqlarray[0]); i++){
SqlCmd = gcnew SqlCommand(gcnew String(sqlarray[i]), m_SqlConn);
SqlCmd->ExecuteNonQuery();
}
tx->Commit();
re = true;
SqlCmd = nullptr;
}
catch(Exception ^e) {
TRACE(CString(e->ToString()));
tx->Rollback();
}
return re;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -