1

タイトルにあるように、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 バックアップ ファイルでのみ見つかります...

前もって感謝します!- ダニエル

4

0 に答える 0