通
·366·
//得到DataGrid 中表示各列信息的类
CColumns cols = m_DataGrid.GetColumns();
//此参数用来得到具体某一列
VARIANT index;
//值为index
index.intVal = ColIndex;
//类型为整型
index.vt = VT_I4;
//得到单击列
CColumn col = cols.GetItem(index);
//得到此列的名字
m_strTableNcom = col.GetCaption();
//排序必须是在已经建立连接的情况下
if(m_Connection != NULL)
{
//排序还必须在表名存在的情况下
if(m_strTableNcom.GetLength() != 0)
{
//得到查询语句的长度,后面会用到
int nOriginalLength = m_strSQL.GetLength();
//构造新的查询语句
CString strTmp = " order by [" + m_strTableNcom + "]";
if(isDesc)
{
strTmp = strTmp + " desc";
isDesc = FALSE;
}
else
isDesc = TRUE;
m_strSQL += strTmp;
//将变量值保存到控件中
UpdateData(FALSE);
//对新的查询语句进行查询
OnExecute();
//恢复原查询语句,这样做是为了再单击别的列,可以对别的列进行排序
m_strSQL.Delete(nOriginalLength, strTmp.GetLength());
}
}
}
至此,所有的代码均已编写完毕。这段代码已经实现了对数据库的基本cāo作。可见,用
枫叶文学网www.fywxw.com
第12 章 数据库开发
·367·
ADO 技术进行数据库开发非常方便,且简单易学。同时,DataGrid 控件的使用可以使得程序
员不再为数据的显示做很多繁琐的事情,从而大大简化了代码的编写。
(4)运行程序
对程序编译、链接,然后运行(这里要注意,在编译的时候会出现如下的警告:
msado15.tlh(403) : warning C4146: unary minus operator applied to unsigned type, result still
unsigned。对此微软在MSDN 中作了说明,并建议不要理会这个警告),可以看到运行界面如
图12-26 所示。
图12-26 程序运行界面
单击“数据源”按钮,打开如图12-27 所示的“数据链接属