从智能设备访问SQL2000的数据

服务器的SQL IIS 配制(数据所在的机器)

创建 Gas 虚拟目录
1.在 Microsoft SQL Server 程序组中,单击"在 IIS 中配置 SQL XML 支持"。
2.展开服务器,然后单击想要的 Web 站点。
3.在"操作"菜单上指向"新建"子菜单,然后单击"虚拟目录"命令。新虚拟目录的属性页将显示在屏幕上。
4.在"新的虚拟目录属性"对话框的"常规"选项卡上,输入虚拟目录的名称。对于本例,键入 Gas 和物理目录路径(例如 C:\Inetpub\Wwwroot\Gas,假设在 C:\Inetpub\Wwwroot 目录中已创建了 Gas 子目录)。或者可以使用"浏览"按钮选择目录。
5.在"安全性"选项卡上,选择"SQL Server"并输入有效的 SQL Server 登录信息。当进入下一个选项卡时,它将请您确认刚才输入的密码。
6.在"数据源"选项卡上,在"SQL Server"框中输入服务器的名称,例如 (local);如果在指定的计算机上安装了多个实例,则输入 SQL Server 2000 实例的名称(可选)。在"数据库"框中,输入 Northwind 作为默认数据库的名称。
7.在"设置"选项卡上,选择"允许 URL 查询"、"允许模板查询"、"允许 XPath"和"允许 POST"选项。
8.在"虚拟名称"选项卡上,单击"新建"按钮以创建模板类型的虚拟名称。
 在"虚拟名称配置"对话框中:
 在"虚拟名称"框内输入 template(可以是用户指定的任意名称)。在"类型"列表中,选择"模板"。输入路径(例如,C:\Inetpub\Wwwroot\Gas\template,假设与虚拟目录相关联的物理目录下有一个子目录 template,但并不检查该目录是否存在)。单击"保存"按钮保存虚拟名称。
9.在"虚拟名称"选项卡上,单击"新建"按钮以创建架构类型的虚拟名称。
 在"虚拟名称"框内输入 schema(可以是用户指定的任意名称)。在"类型"列表中,选择"架构"。输入路径(例如,C:\Inetpub\Wwwroot\Gas\schema,假设与虚拟目录相关联的物理目录下有一个子目录 schema)。单击"保存"按钮保存虚拟名称。
10.在"虚拟名称"选项卡上,单击"新建"按钮以创建模板和架构类型的虚拟名称。
 在"虚拟名称"框内输入 dbobject(可以是用户指定的任意名称)。在"类型"列表中,选择 dbobject。单击"保存"按钮保存虚拟名称。
11.单击"确定"按钮保存设置。

然后使用下面的代码:
/// <summary>
        /// 执行sql,并将数据保存为xml文件到本地
        /// </summary>
        /// <param name="ds">传入数据集</param>
        /// <param name="cSQL"></param>
        /// <param name="isUpdate">是否为执行sql,不是select查询sql</param>
        /// <returns></returns>
        public bool ExecSql(DataSet ds, String cSQL, bool isUpdate)
        {
            Char[] buf = new Char[256];
            String SQL = "";
            Cursor.Current = Cursors.WaitCursor;
            if (isUpdate)
            {
                SQL = String.Format("http://{0}/你配置的虚拟目录名?sql={1} &root=root", FServerIP, cSQL);
            }
            else
            {
                SQL = String.Format("http://{0}/你配置的虚拟目录名?sql={1} FOR XML AUTO&root=root", FServerIP, cSQL);
            }
            try
            {
               
                HttpWebRequest HttpWReq = (HttpWebRequest)WebRequest.Create(SQL);
                HttpWebResponse HttpWResp = (HttpWebResponse)HttpWReq.GetResponse();
                Stream receiveStream = HttpWResp.GetResponseStream();
                Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
                StreamReader readStream = new StreamReader(receiveStream, encode);
                string tmp = readStream.ReadToEnd();
                TextWriter tw = File.CreateText(_FilePath + "DataTemp.xml");
                tw.Write(tmp);
                readStream.Close();
                tw.Flush();
                tw.Close();
                HttpWResp.Close();
                ReadXML(ds,"DataTemp.xml");
                return true;
            }
            catch (Exception e)
            {
                //MessageBox.Show(String.Format("执行 {0} 时出现错误!\n{1}", cSQL, e.Message), "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
                MessageBox.Show("网络错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
                return false;
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }

这样一来你就把想要的数据保存到本地的XML文件了,然后怎么做就看你自己了三。

原文地址:https://www.cnblogs.com/yunxizfj/p/1093681.html