中国刮痧第一人李道政:.net2005下datawindow.net2.0的简单使用

来源:百度文库 编辑:中财网 时间:2024/05/05 07:02:34

在用过C#和PB后,就一直在想这个问题,如果能把PB中强大的datawindow功能放到C#使用,则对程序的开发能有很大的帮助。当我发现Sybase公司出了可以在.net中使用的datawindow.net时,心中感到一阵高兴。这阵有空,研究了一下,终于把这个功能用上了。

        操作前,请安装环境:Visual Studio .NET 2005,Datawindow.NET 2.0

        具体操作如下:

        1、设计要使用的datawindow

              A、打开DataWindow Designer(DataWindow设计器),新建一项目,如:test.dwp(此操作在默认情况下会自动生成一个对应项目名称的pbl文件,此处为:test.pbl)

              B、建一数据库连接,我这儿是sql server2000,建数据连接时,我选择的是[ADO Microsoft ADO.NET],选择[New...]按钮,建立过程与PB中建数据连接一样:

                    在Connection 页面:

                     Profile Name: LocalSql     //数据链接名,可自行设置

                     Namespace: System.Data.SqlClient      // 可选择合适的连接数据要用的命名空间

                     Data Source: (local)

                     User ID:        sa

                     Password:     hospital_1

                     Database:      hospital

                     设置完后,可以切换到Preview页面中,通过选择[Test Connection]测试所做的参数设置是否正确。然后选择[OK]

            

              C、新建datawindow对象,并保存到对应的pbl文件中。创建过程与PB中一样,这儿不详说。有不清楚的请参考PB的相关书籍内容。

                    如果有多个datawindow,则需重复此操作。

              D、关闭所有的设计界面。在设计界面的左边的项目名称上面,鼠标右击,在出现的菜单中,选择项:[Build Deployment...]后将pbl文件发布为pbd文件。(此处为test.pbd)

         2、vs2005中的调用。

               A、打开vs2005,新建一C#下的Windows应用程序工程:CallDataWindow。

               B、在窗体中,新建一datawindow控件(Sybase DataWindow 2.0下的DataWindowControl),命名为dw。并设置如下属性:

                      ScrollBars:Both  //显示横向纵向滚动条

                      LibraryList:Test.pbd  //把pbd文件拷贝到运行目录下

                      DataWindowObject:(此处选择设计好了的datawindow名)

                      其它的,根据需要设置。

               C、在窗体中,放几控件:

                       button1:取数据               button2:新增行         button3:删除行        button4:保存       button5:打印    button6:另存为...

               D、切换到源码中,程序中声明三变量

                       System.Data.SqlClient.SqlConnection theConnection; // 数据库连接

                       Sybase.DataWindow.AdoTransaction trans;   // 事务

                       int dwRow;              // datawindow选中的行

               E、在Form_Load事件中,加入如下代码:

  1.             theConnection = new System.Data.SqlClient.SqlConnection();
  2.             theConnection.ConnectionString = "Data Source=.;Initial Catalog=hospital;User ID=sa;";
  3.             theConnection.Open();
  4.             trans = new Sybase.DataWindow.AdoTransaction(theConnection, "");
  5.             trans.BindConnection();
  6.             dw.SetTransaction(trans);
  7.             dw.SetRowFocusIndicator(Sybase.DataWindow.RowFocusIndicator.Hand); // 设置指示图标

                 F、    dw的事件RowFocusChanged加如下代码:

                            dwRow = e.RowNumber;     // 保存当前选中行。

                 G、button1的Click事件:

                        dw.Retrieve();   // 获取数据

                 H、button2的Click事件:          // 插入一行         

  1.             int row = dw.InsertRow();  // 插入行 
  2.             dw.SetItemString(row, "czy""test"); // 给当前行指定列赋值 
  3.             dw.ScrollToRow(row);    // 滚动到指定 
  4.             string s1;
  5.             s1 = dw.GetSqlSelect();  //取datawindow的sql语句,此处只取,没有使用 

                  I、button3的Click事件:  // 删除一行

                         dw.DeleteRow(dwRow);   // 当选中行变化时,值dwRow会相应变化。。

                  J、button4的Click事件:// 保存当前修改。

                        dw.UpdateData(true, true);

                  K、button5的Click事件:  // 打印

                        dw.Print();

                  L、button6的Click事件: // 另存为...

  1.             SaveFileDialog saveDlg = new SaveFileDialog();
  2.             saveDlg.CheckPathExists = true;
  3.             saveDlg.AddExtension = true;
  4.             saveDlg.Filter = "(*.xls)xls文件|*.xls|(*.csv)csv文件|*.csv|(*.pdf)pdf文件|*.pdf|(*.txt)txt文件|*.txt|(*.xml)xml文件|*.xml";
  5.             DialogResult dr = saveDlg.ShowDialog();
  6.             if (dr == DialogResult.OK)
  7.             {
  8.                 string filename = saveDlg.FileName;
  9.                 int type1;
  10.                 type1 = saveDlg.FilterIndex;
  11.                 try
  12.                 {
  13.                     switch (type1)
  14.                     {
  15.                         case 1:
  16.                             dw.SaveAs(filename, Sybase.DataWindow.FileSaveAsType.Excel, true);
  17.                             break;
  18.                         case 2:
  19.                             dw.SaveAs(filename, Sybase.DataWindow.FileSaveAsType.Csv, true);
  20.                             break;
  21.                         case 3:
  22.                             dw.SaveAs(filename, Sybase.DataWindow.FileSaveAsType.Pdf, true); // 貌似这个要出错。不知是不是我系统的原因
  23.                             break;
  24.                         case 4:
  25.                             dw.SaveAs(filename, Sybase.DataWindow.FileSaveAsType.Text, true);
  26.                             break;
  27.                         case 5:
  28.                             dw.SaveAs(filename, Sybase.DataWindow.FileSaveAsType.Xml, true);
  29.                             break;
  30.                         default:
  31.                             break;
  32.                     }
  33.                     MessageBox.Show("保存成功!!", "系统提示", MessageBoxButtons.OK);
  34.                 }
  35.                 catch (Exception ex)
  36.                 {
  37.                     MessageBox.Show("保存时出错,原因:" + ex.Message, "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  38.                 }
  39.             }

                     使用C#调用datawindow,并完成一些简单功能的介绍就到这儿。如有什么不对的地方或是考虑不周的地方,还请各位指出。