正如标题中所说,我在运行 Windows Mobile 6.5 的移动设备上从我的 WiFi 网络中的 SQL Server 检索数据时遇到问题。
每当我填写我的数据集时,我都不会收到任何错误。接下来,我将我的 XML 备份文件写入设备磁盘。这个 XML 文件包含一个模式和数据(它确实如此!)。
这是此 XML 文件的摘录:
/* The way datatable values are presented in my xml backup file */
<Table>
<c0>value0</c0>
<c1>value1</c1>
<c2>value2</c2>
<c3>value3</c3>
<c4>value4</c4>
</Table>
<Table>
...
</Table>
...
所以这显然是有效的......不是,如果我现在尝试访问该表应包含的数据。我通过以下两种方式做到这一点:
// 1 (in forms):
textBox1.Text = ds.Tables[0].Rows[0]["c2"].ToString();
// 2 (in testing log):
DataTable dt = ds.Tables["tablename"]; // ds is static class member DataSet
// and definitely not null, but strongly
// named DataSet (tablenameDataSet.xsd type)
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
sw.WriteLine(row[col]);
sw.WriteLine("".PadLeft(16, '='));
}
现在最后但并非最不重要的是,我检索数据的代码:
string connString = "Data Source=servername;Initial Catalog=databasename;
User ID=user;Password=pw";
string sql = @"SELECT c0, c1, c2, c3, c4, c5, c6
FROM tablename
ORDER BY c5";
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
conn.Open();
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(sql, conn);
ds = new tablenameDataSet();
da.Fill(ds);
然后我正在编写 XML,然后是日志,然后以表单形式访问数据。ds.Tables[0].Rows.Count 为 0,而找到所有 7 列。所以它是正确的表。数据只能在那个 XML 备份文件中找到......
提前致谢!- 丹尼尔