當我跑這來過濾我的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和它仍然沒有它,我不知道爲什麼。
我怎麼用戶輸入添加到文件
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