タイトルにあるように、Windows Mobile 6.5 を実行しているモバイル デバイスの WiFi ネットワークで SQL Server からデータを取得する際に問題があります。
DataSet を埋めるたびに、エラーは発生しません。次に、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>
...
したがって、これは明らかに機能しています...そうでないのは、このテーブルに含まれている必要があるデータにアクセスしようとした場合です。私はこれらの2つの方法でこれを行っています:
// 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 バックアップ ファイルでのみ見つかります...
前もって感謝します!- ダニエル