WEB开发网
开发学院软件开发VC VC操作SQL Server主从表 阅读

VC操作SQL Server主从表

 2010-02-19 20:33:16 来源:WEB开发网   
核心提示:五、实现主从表的显示由于我假设不知道数据库中有多少字段,字段名都是不知道的,VC操作SQL Server主从表(3),所有都动态生成,所以首先要检索主键,不对外公布)这就要靠广大程序员的努力探索了,知识共享,把主键检索出来以后,然后得到列表当前选择行的对应于主键列的数据

五、实现主从表的显示

由于我假设不知道数据库中有多少字段,字段名都是不知道的。所有都动态生成。所以首先要检索主键。把主键检索出来以后,然后得到列表当前选择行的对应于主键列的数据。然后以这些主键列的值当作检索条件检索从表的数据(从表的主键一定多于主表)最后将结果显示出来。看起来过程也挺简单的,如果用dotnet中DataGrid做的话,太简单了是吧,但VC操作起来,就有点麻烦了。就拿从列表取当前选择行的主键列的数据的话,和dotnet一比,就知道VC麻烦在哪儿了。(不过我还是比较喜欢VC,嘿嘿)。一个DataGrid,如果我知道了列名,又茯取了当前行的行号(CurrentRowIndex)

如果你后台是直接绑定的一个DataTable,就可以直接取得这个值:myTable.Rows[CurrnetRowIndex][“pkey1”].ToString();当然如果你后面不是直接绑定一个DataTable,而是一个结果经过虑后的结果,那么可能会稍烦琐一点。这里不对这种情况进行计讨论。下面看一下VC下是怎么处里的,(如果有更好的方法,请通知我,先谢了)

int CDagView::GetColumnIndex(CListCtrl &ref,LPCTSTR strCol)
{
   CHeaderCtrl * pHeader=ref.GetHeaderCtrl();
   int nCount=pHeader->GetItemCount();
   TCHAR lpBuffer[256];
   bool  fFound = false;
   HDITEM hdi;
   hdi.mask = HDI_TEXT;
   hdi.pszText = lpBuffer;
   hdi.cchTextMax = 256;
   int index=-1;
   for (int i=0;!fFound && (i < nCount);i++)
   {
     pHeader->GetItem(i, &hdi);

     if (strcmp(hdi.pszText, strCol) == 0)
     {
       index=i;
       fFound = true;
     }
   }
   return index;
}
iSubItem=GetColumnIndex(refListCtrl);
CString strValue=refListCtrl.GetItemText(iCurrent,iSubItem);

先取得列号然后取得行号,最后取这个值......好了,就写这么多吧,具体细节再看代码。

六、结束语

其实这个程式比较简单,在Windows 2k下调试通过!就写到这里吧,不足之处,见谅!有时候,再好的技术,如果缺乏有效的示例,也会变得晦涩难懂。像本文中的列表、树形控件参数很多,使用VC++虽然说可以发挥出他们最强劲的功能,但是有一部分参数,在MSDN中只是简要介绍,没有详细的示例说明(我猜:微软内部肯定有更加详细的示例及文档,或者说叫引擎,不对外公布)这就要靠广大程序员的努力探索了,知识共享,大家共同进步。

本文配套源码

上一页  1 2 3 

Tags:VC 操作 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接