打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
CSDN 论坛


我想直接修改表中的数据,并且修改之后点保存按钮,数据库中的表也随之改变,下次连接读出来的表信息就是修改后的信息。
怎么实现呢?我以为有了控件DataGrid,运行程序后就可以直接在DataGrid里边手动修改并且保存呢,但是好像不行!
贴一些我的数据源、连接、保存代码:
数据源:
void CChapq2_1View::OnSource()  //按钮“数据源”
{
// TODO: Add your control notification handler code here
//数据的动态连接
HRESULT hr;
IDataSourceLocatorPtr m_dlPrompt=NULL;
_ConnectionPtr m_Conn=NULL;

::CoInitialize(NULL);

CLoginDialog dlg1;
hr=m_dlPrompt.CreateInstance(__uuidof(DataLinks));//创建数据源对象

m_Conn=m_dlPrompt->PromptNew();//弹出数据连接属性。返回值是sql的连接字符串

if(m_Conn!=NULL)
{
m_strConnection.Format('%s',(char*)m_Conn->ConnectionString);
//将字符串显示到edit上
UpdateData(FALSE);//变量的值,显示到关联的控件上
    }
}

连接:
void CChapq2_1View::OnConncet()   //按钮“连接”
{
// TODO: Add your control notification handler code here
    UpdateData(TRUE);//将edit控件上的值() 传给 控件关联的变量
try
{
m_Connection.CreateInstance(__uuidof(Connection));//创建连接对象
//真正的 连接数据库 !! 好鸡冻啊 哈哈
        m_Connection->Open(_bstr_t(m_strConnection.GetBuffer(0)),'','',-1);
}
catch(_com_error &e)
{
GenerateError(e.Error(),e.Description());
}
catch(...){}
UpdateData(FALSE);
getTables();////得到数据库中的数据表(自己定义的函数)

}

保存:
void CChapq2_1View::OnLaw() //简单修改功能中“保存”按钮
{
// TODO: Add your control notification handler code here
m_strSQL = _T('');
m_strSQL='select * from ['+m_strTableName+']';
MessageBox('修改的内容已保存');
UpdateData(FALSE);
OnExecute();//执行SQL语句

}
执行SQL语句:
OnExecute():

void CChapq2_1View::OnExecute() 
{
// TODO: Add your control notification handler code here
try
{
m_Recordset.CreateInstance(__uuidof(Recordset));
UpdateData(TRUE);
m_Connection->CursorLocation=adUseClient;//设置游标非常重要,如果没有,则无法显示数据 
//真正执行SQL的代码
        m_Recordset->Open(m_strSQL.GetBuffer(0),m_Connection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error &e)
{
GenerateError(e.Error(),e.Description());
}
catch(...){}
//将结果集m_Recordset里边的数据 更新 到DataGrid关联的变量:m_DataGrid中
m_DataGrid.SetRefDataSource((LPUNKNOWN)m_Recordset);
    m_DataGrid.Refresh();
    UpdateData(FALSE);//将变量里边的信息 更新 到关联的控件DataGrid中去(真正的显示)
    m_Recordset=NULL;
}

如何实现 在DataGrid内直接 修改 信息的操作呢?
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
[原创]MFC入门小结
VC |ADO数据库(Access)编程
VB+Access设计图书管理系统
S7-200 OPC C++读写PC Access服务器
datagrid save or update
Handler消息机制的一些原理(直接用code讲解)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服