精华内容
下载资源
问答
  • 自己太傻太天真,开始自己的思路一直停留在如何在datagrid这个控件上面下功夫,直到谷歌度娘了半天,发现了极具历史性意义的一篇博文,才得以把问题解决,此乃最为严重的一场血案——《血案四》特此鸣谢资料一:...

         自己太傻太天真,开始自己的思路一直停留在如何在datagrid这个控件上面下功夫,直到谷歌度娘了半天,发现了极具历史性意义的一篇博文,才得以把问题解决,此乃最为严重的一场血案——《血案四》

    特此鸣谢资料一:http://hi.baidu.com/ast%D0%A1%D7%E9/blog/item/5d3785cfad873436f8dc6133.html

    背景:

    1、用VC操作数据库是非常麻烦的,网上关于VC下利用ADO和datagrid操作数据库的教程也很多,但无非是相互抄袭。

    2、ADO使用起来麻烦,然而一个老外写的ADO Classes我感觉还是挺好用的。包括两个文件ado2.h和ado2.cpp,而网上关于使用这个类进行ADO数据库操作的文章不多。

    3、VC6.0下的datagrid貌似没有.net的那么强大,也没有VB6那么好用。连分页都显得麻烦,ADO自带的虚拟分页功能好像在datagrid上不好使。更要命的是,MSDN上的参考文献主要是针对VB的。

    4、虽然VC6确实已经落伍不少,不过其经典性还是很明显的。而且网络资源也比较多,适合初学者尽快熟悉掌握VC开发。

    摘要:

    本文主要初步介绍在VC6环境下利用CADO class,datagrid分页显示数据。

    首先介绍一下CADO class,这个类是一个老外自己写的,方便在VC下利用ADO操作数据库,包含两个文件,ado2.h,ado2.cpp

    详细信息参阅http://www.codeproject.com/KB/database/caaadoclass1.aspx,不过是英文的。

    首先将ado2.h和ado2.cpp文件添加的工程中。再点工程——添加到工程——components and Controls——Microsoft DataGrid control 6.0——Insert——先只选CDataGrid类——MFC classWizard——MemberVariables——Add Variable。创建一个datagrid类型的变量,并与刚刚添加的控件ID关联。

    关键代码解释

    代码中的几个主要的变量的说明

    int PageNum;
    int   OffSet;
    int   PageSize;
    CADORecordset   m_Rs;
    CADODatabase   m_DBCn;

    enum { IDD = IDD_ASTGTEST_DIALOG };
         CDataGrid   m_ctrlDG3;

    在 CASTGTestDlg::OnInitDialog()里添加代码:

    CString strConnection;
         strConnection.Format(_T("Provider=Microsoft.Jet.OLEDB.4.0;")
       _T("Data Source=note.mdb"));
         m_DBCn.Open((LPCTSTR)strConnection); //打开程序数据库
    m_Rs.SetDatabase(&m_DBCn);//recordset与database关联。此处使用的是version2.1的,version2.2版本中已经不存在此函数。可以用以下的方法产生关联CADORecordset* pRs = new CADORecordset(pAdoDb);
    //设定分页的各项参数
    PageSize=3;    //每页record条数
    PageNum=3; //因为数据库里有9条数目,为了节省时间,就直接计算出了总页数,在实际编写中,需要根据总数计算得出动态的条目数。
    OffSet=1; //现在处于的页数
    CADOCommand m_Com(&m_DBCn,L"select top 3 * from test order by id;",CADOCommand::typeCmdText);     //增加CADOCommand对象,操作数据库的SQL语句可以放在此对象里面。

    m_Rs.Execute(&m_Com);   //执行Command里的SQL语句
    m_ctrlDG3.SetCaption(_T("AST小组"));   //设置datagrid控件的标题
    m_ctrlDG3.SetRefDataSource((LPUNKNOWN)m_Rs.GetRecordset());   //将datagrid与recordset相关联。

     

    //对话框的“上一页”按钮对应的代码
    void CASTGTestDlg::OnUp() 
    {
    // TODO: Add your control notification handler code here
    if ((OffSet-2)>0)
    {
       CString strSQL;
      //以下SQL语句用于分页,具体语法可以查阅相关SQL手册
       strSQL.Format(_T("select top %d * from test where (id not in (select top %d id from test order by id)) order by id;"),PageSize,(OffSet-2)*PageSize);

       CADOCommand m_Com(&m_DBCn,strSQL,CADOCommand::typeCmdText);
       m_Rs.Execute(&m_Com);
       m_ctrlDG3.SetRefDataSource((LPUNKNOWN)m_Rs.GetRecordset());
       m_ctrlDG3.Refresh();
       OffSet--;
    }
    else
    {

       CADOCommand m_Com(&m_DBCn,L"select top 3 * from test order by id;",CADOCommand::typeCmdText);
       m_Rs.Execute(&m_Com);
       m_ctrlDG3.SetRefDataSource((LPUNKNOWN)m_Rs.GetRecordset());
       m_ctrlDG3.Refresh();
       OffSet=1;
    }
    }

     

    //对话框“下一页”按钮对应代码
    void CASTGTestDlg::OnNext() 
    {
    // TODO: Add your control notification handler code here
    if (OffSet<PageNum)
    {
       CString strSQL;
       strSQL.Format(_T("select top %d * from test where (id not in (select top %d id from test order by id)) order by id;"),PageSize,OffSet*PageSize);

       CADOCommand m_Com(&m_DBCn,strSQL,CADOCommand::typeCmdText);
       m_Rs.Execute(&m_Com);
       m_ctrlDG3.SetRefDataSource((LPUNKNOWN)m_Rs.GetRecordset());
       m_ctrlDG3.Refresh();
       OffSet++;
    }
    else
    {
       MessageBox("已是最后一页!");
    }

    }

     

    为共享交流,如有不妥之处,望海涵。

     

    示例源代码下载 http://download.csdn.net/source/2059191

    展开全文
  • vs中使用DataGrid控件

    千次阅读 2015-05-05 14:25:11
    今天做用vs2013做对话框时需要用到DataGrid控件,用vc的话可以“Project→Add To ...但是在vs貌似没有该选项,查了下资料,可以这样:在对话框界面右键,然后选“插入Active控件”,在里面就有Microsoft DataGrid

    今天做用vs2013做对话框时需要用到DataGrid控件,用vc的话可以“Project→Add To Project→Components and Controls”,然后选择Microsoft DataGrid Control 6.0即可。

    但是在vs中貌似没有该选项,查了下资料,可以这样:在对话框界面中右键,然后选“插入Active控件”,在里面就有Microsoft DataGrid Control。

    展开全文
  • DataGrid使用中,经常需要为删除按纽添加确认对话框,根据我的学习经验,总结了三种方法,原理都是在客户端为删除按纽添加脚本代码来实现删除前弹出确认对话框。 方法一: 当为DataGrid控件添加删除按纽后,为...
    在DataGrid的使用中,经常需要为删除按纽添加确认对话框,根据我的学习经验,总结了三种方法,原理都是在客户端为删除按纽添加脚本代码来实现删除前弹出确认对话框。
    方法一:
    当为DataGrid控件添加删除按纽后,为DataGrid控件添加ItemDataBound事件处理程序,代码如下:
    //添加删除确认对话框。
       switch(e.Item.ItemType)
       {
        case ListItemType.Item:
        case ListItemType.EditItem:
        case ListItemType.AlternatingItem:
         ((LinkButton)e.Item.Cells[4].Controls[0]).Attributes.Add("onclick","return confirm('你真的要删除第"+(e.Item.ItemIndex+1).ToString()+"行吗?');");
         break;
       }
    其中,e.Item.Cells[4]说明你添加的删除按纽在DataGrid控件中位于第五列,列号从0开始。
    方法二:使用模板列
    1.为DataGrid添加一个模板列,名为“自定义删除”,在这个模板列中添加一个按纽,将按纽的CommandName属性设为UserDelete;
    2.为DataGrid添加ItemCreated事件,添加客户端脚本程序,代码如下:
    switch(e.Item.ItemType)
       {
        case ListItemType.Item:
        case ListItemType.EditItem:
        case ListItemType.AlternatingItem:
         Button myDelButton = (Button)e.Item.FindControl("btnDelete");
         myDelButton.Attributes.Add("onclick","return confirm('你真的要删除第"+(e.Item.ItemIndex+1).ToString()+"行吗?');");
         break;
       }
    3.为DataGrid添加ItemCommand事件,处理删除事件,代码如下:
    if(e.CommandName == "UserDelete")
       {
          //执行删除。
       }
    方法三:
    这种方法很少见到人用,但却是最简单的方法,方法如下:
    将DataGrid的删除按纽的文本属性设为如下代码:
    <div id=d οnclick="JavaScript:return confirm('你真的要删除这一行吗?');">删除</div>
    展开全文
  • DataGrid中添加删除确认对话框 多种实现 在DataGrid的使用中,经常需要为删除按纽添加确认对话框,根据我的学习经验,总结了三种方法,原理都是在客户端为删除按纽添加脚本代码来实现删除前弹出确认...
    在DataGrid的使用中,经常需要为删除按纽添加确认对话框,根据我的学习经验,总结了三种方法,原理都是在客户端为删除按纽添加脚本代码来实现删除前弹出确认对话框。
    方法一:
    当为DataGrid控件添加删除按纽后,为DataGrid控件添加ItemDataBound事件处理程序,代码如下:
    //添加删除确认对话框。
       switch(e.Item.ItemType)
       {
        case ListItemType.Item:
        case ListItemType.EditItem:
        case ListItemType.AlternatingItem:
         ((LinkButton)e.Item.Cells[4].Controls[0]).Attributes.Add("onclick","return confirm('你真的要删除第"+(e.Item.ItemIndex+1).ToString()+"行吗?');");
         break;
       }
    其中,e.Item.Cells[4]说明你添加的删除按纽在DataGrid控件中位于第五列,列号从0开始。
    方法二:使用模板列
    1.为DataGrid添加一个模板列,名为“自定义删除”,在这个模板列中添加一个按纽,将按纽的CommandName属性设为UserDelete;
    2.为DataGrid添加ItemCreated事件,添加客户端脚本程序,代码如下:
    switch(e.Item.ItemType)
       {
        case ListItemType.Item:
        case ListItemType.EditItem:
        case ListItemType.AlternatingItem:
         Button myDelButton = (Button)e.Item.FindControl("btnDelete");
         myDelButton.Attributes.Add("onclick","return confirm('你真的要删除第"+(e.Item.ItemIndex+1).ToString()+"行吗?');");
         break;
       }
    3.为DataGrid添加ItemCommand事件,处理删除事件,代码如下:
    if(e.CommandName == "UserDelete")
       {
          //执行删除。
       }
    方法三:
    这种方法很少见到人用,但却是最简单的方法,方法如下:
    将DataGrid的删除按纽的文本属性设为如下代码:
    <span id=d οnclick="JavaScript:return confirm('你真的要删除这一行吗?');">删除</span>
    posted on 2006-02-26 14:40 堕落的卖猪贩 阅读( ...) 评论( ...) 编辑 收藏

    转载于:https://www.cnblogs.com/zkxp/archive/2006/02/26/338079.html

    展开全文
  • DataGrid添加确认删除的对话框 confirm javascript
  • DataGrid使用中,经常需要为删除按纽添加确认对话框,根据我的学习经验,总结了三种方法,原理都是在客户端为删除按纽添加脚本代码来实现删除前弹出确认对话框。 方法一: 当为DataGrid控件添加删除按纽后,为...
  • 可以直接用在WEB窗体,可以这样写删除"CommandName="Delete">如果你用的是网格(DataGrid)的话那么就是在按钮列的文本 填入 删除命令名当然是Delete用js也能实现,而且很方便,把这js拷贝到页面上: function ...
  • private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { int nyqID=(int)this.DataGrid1.DataKeys[e.Item.ItemIndex]; 
  • DataGrid点击删除按钮弹出确认对话框一个好办法 原文地址http://expert.csdn.net/Expert/topic/2852/2852126.xml?temp=.4770471 其中wf5360308(峰)提供的方法datagrid-》属性生成器-》列-》添加按钮列-》删除-》...
  • 设计网站交互时,尽量不要有太多的弹出框,这样对用户来说很突兀,打开多个弹出窗口后,都不知道哪一个是哪一个,有的是模式对话框,弹出一个后,主窗口不能正常操作,浏览器也不能关闭,必须关掉该对话框;...
  • 使用DataGrid删除按钮列时,想做一个这样的设计:当点击DataGrid中的删除按钮来删除一条记录时, 弹出一个对话框来进行确认,在对话框点击确定时才执行删除操作,取消时就不执行!在网找了下资料,用comfirm()就行...
  • 怎样实现在DataGrid中删除一行时弹出选择对话框,选择yes删除该行,或者弹出一个小窗口,通过小窗口上面的按钮来完成最后删除或取消超作解决方法:1)在该DataGrid中添加一个模板列,例如:<asp:TemplateColumn ...
  • 使用DataGrid动态绑定DropDownList

    千次阅读 2004-12-23 10:06:00
    简单的使用模板列绑定DropDownList,初学者想必都会了,但有时候,我们要做的就是在编辑的时候想让某一列定制为DropDownList,并且根据正常情况下显示的值自动变换DropDownList所选的值,然后保存选择后的值到...
  • DataGrid里添加确认删除的对话框http://lucky_elove.www1.dotnetplayground.com/在删除数据前进行确认是一个非常友好的做法。在本文里,我们就讨论利用TemplateColumn和Button服务端控件实现这种功能的方法。...
  • private void dataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingIt
  • 简单的使用模板列绑定DropDownList,初学者想必都会了,但有时候,我们要做的就是在编辑的时候想让某一列定制为DropDownList,并且根据正常情况下显示的值自动变换DropDownList所选的值,然后保存选择后的值到...
  • 先在DataGrid的最后一列增加一个删除按钮 ...privatevoidDataGrid1_ItemCreated(objectsender,System.Web.UI.WebControls.DataGridItemEventArgse){//判断如果是DataGrid控件的项、交替项以及编辑项if...
  • vs2008 MFC使用DataGrid控件绑定数据库

    千次阅读 2016-12-23 09:23:35
    1、首先在对话框上点击右键,选择插入ActiveX控件,向下拖拉,找到MicrosoftDataGrid Control 6.0(SP6)(OLEDB),点击确定,在界面上...3、在对话框头文件增加: #import "c:\program files\common files\system\ado\m
  • easyui 中datagrid使用方法

    千次阅读 2015-06-03 23:51:12
    由于使用datagrid主要是和数据打交道,所以为了方便就用了js的方式创建数据表格<table id="dg"></table> <a href="/createArticle" class="easyui-linkbutton" iconCls="icon-add" plain="t
  • DataGrid中加入审核功能及删除的确认对话框[图]pcsky(进哥)NewsCheck.aspx (前台代码)" runat="server" AllowPaging="True"> HeaderText="修改"> NewsCheck.vb (后台代码)Private Sub DataGrid1_ItemDa
  • private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e){if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem){...
  • private void DataGrid2_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e){if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)...
  • DataGrid中加入审核功能及删除的确认对话框[图]pcsky(进哥)个人主页:http://www.soft123.comNewsCheck.aspx (前台代码)" runat="server" AllowPaging="True"> HeaderText="修改"> NewsCheck.vb (后台代码
  • private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { switch(e.Item.ItemType) { case ListItemType.Item: case ListItemType.Al...
  • 这两天闲着无事,写了一个MFC下对话框工程的查询小应用软件,由此引发了一系列血案:《血案一》问题:如题最终解决方法:1.加入一个DataGrid的。 2.添加变量CDataGrid m_grid; 3.声明一个链接_ConnectionPtr m_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,907
精华内容 3,162
关键字:

对话框中使用datagrid