首页上一页 1 下一页尾页 1 条记录 1/1页
VC数据库系统开发完全手册固定资产系统资产类别
发表在C语言图书答疑
2011-01-09
是否精华
是
否
版块置顶:
是
否
当单击VC++ DATAGRID控件时,如何把DATAGRID控件中的数据显示在对话框的编辑框中.
下面是我的源代码,数据库表只有一个字段,这个字段对应的值有几个,但当我单击DATAGRID控件时,不管点击哪一行,编辑框中始终显示的是第一行的值.请问是什么原因,该如何修改代码?我现在要实现的是当我随机点击DATAGRID控件中的某一行值时,编辑框中要显示对应的值.请楼主赐教.
有楼主有以下回答;
sql.Format("select kinds as 资产类别 from tb_kinds");
这个查询语句没有判断条件,查询到的是数据表中的所有记录,默认情况指向第一条记录。所以显示的都是第一条记录。
应该修改SQL语句添加判断条件
但如何为SQL语句添加判断条件呢,怎样具体地修改代码,希能贴上具体代码.
关键代码如下:
void CCbfDlg::OnClickDatagrid()
{
// TODO: Add your control notification handler code here
CString strConn;
strConn="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=EquipmentManage";
_ConnectionPtr pConn(_uuidof(Connection));
pConn->Open((LPCTSTR)strConn,"","",adModeUnknown);
CString str;
_variant_t temp;
CString sql;
sql.Format("select kinds as 资产类别 from tb_kinds");
_RecordsetPtr pRst(_uuidof(Recordset));
pRst->Open((_bstr_t)sql,pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
if ((!pRst->ADOEOF)&&(!pRst->BOF))
{
temp = pRst->GetFields()->GetItem((long)0)->Value;
str =temp.bstrVal;
m_edit.SetWindowText(str);
}
}
下面是我的源代码,数据库表只有一个字段,这个字段对应的值有几个,但当我单击DATAGRID控件时,不管点击哪一行,编辑框中始终显示的是第一行的值.请问是什么原因,该如何修改代码?我现在要实现的是当我随机点击DATAGRID控件中的某一行值时,编辑框中要显示对应的值.请楼主赐教.
有楼主有以下回答;
sql.Format("select kinds as 资产类别 from tb_kinds");
这个查询语句没有判断条件,查询到的是数据表中的所有记录,默认情况指向第一条记录。所以显示的都是第一条记录。
应该修改SQL语句添加判断条件
但如何为SQL语句添加判断条件呢,怎样具体地修改代码,希能贴上具体代码.
关键代码如下:
void CCbfDlg::OnClickDatagrid()
{
// TODO: Add your control notification handler code here
CString strConn;
strConn="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=EquipmentManage";
_ConnectionPtr pConn(_uuidof(Connection));
pConn->Open((LPCTSTR)strConn,"","",adModeUnknown);
CString str;
_variant_t temp;
CString sql;
sql.Format("select kinds as 资产类别 from tb_kinds");
_RecordsetPtr pRst(_uuidof(Recordset));
pRst->Open((_bstr_t)sql,pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
if ((!pRst->ADOEOF)&&(!pRst->BOF))
{
temp = pRst->GetFields()->GetItem((long)0)->Value;
str =temp.bstrVal;
m_edit.SetWindowText(str);
}
}