を返します。これを実行すると、xmlファイルがフィルタリングされ、指定された量を上回るすべての行が返されます。データグリッドの行フィルタは、
DataSet ds = new DataSet();
ds.ReadXml("Database.xml");
string filter = "";
filter = "Dayvisited <= '20'";
DataView dv = new DataView(ds.Tables[0]);
dv.RowFilter = filter;
dataGridView2.DataSource = dv;
dataGridView2.Columns[4].Visible = false;
これは私のxmlです
<root>
<place>
<Name />
<Location />
<Info />
<Dayvisited />
<userdata />
</place>
<place>
<Name>home</Name>
<Location>x-292 z 277</Location>
<Info>home</Info>
<Dayvisited>100</Dayvisited>
<userdata>u</userdata>
</place>
<place>
<Name>base</Name>
<Location>x868 z986</Location>
<Info>stuff</Info>
<Dayvisited>20</Dayvisited>
<userdata>u</userdata>
</place>
<place>
<Name>town</Name>
<Location>x 990 z-2485</Location>
<Info>gas station</Info>
<Dayvisited>12</Dayvisited>
<userdata>u</userdata>
</place>
<place>
<Name>crossing</Name>
<Location>x 90 z-2998</Location>
<Info>working stiff</Info>
<Dayvisited>11</Dayvisited>
<userdata>u</userdata>
</place>
<place>
<Name>home</Name>
<Location>x-280 z 277</Location>
<Info>home and more stuff</Info>
<Dayvisited>125</Dayvisited>
<userdata>u</userdata>
</place>
</root>
どのように私はそれをデータグリッドにのみDayvisitedで20未満を返すことができます?。私は値のためのテキストボックスを使用して何かを混乱させると思ったので、私はそれを20を使用するように変更し、まだそれを行い、なぜ私は知らない。私は基本的な問題は、あなたが文字列としてDayVisited
の値を読むことで、ファイルに
try
{
DataRow dr = ds.Tables[0].NewRow();
dr["Name"] = Nametb.Text;
dr["Location"] = Locationtb.Text;
dr["Info"] = Infotb.Text;
dr["Dayvisited"] = dayvisitcb.Text;
dr["userdata"] = "u";
ds.Tables[0].Rows.Add(dr);
ds.WriteXml("Database.xml");
}
catch (Exception)
{
throw;
}
「Dayvisited <= 20」 'を試しましたか? – Alberto
はい、これは、 "実行できません '<=' System.StringとSystem.Int32の操作。 –
データを読み込むコードを 'DataSet'に追加できますか? 'DayVisited'の値を文字列として保存しているようです。これにより、アルファベット順に「100」が「20」未満になります。そういうわけで、すべてのレコードが表示されます。 – Markus