从智能设备访问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文件了,然后怎么做就看你自己了三。