我想在表示文件编号的选定树节点的值上过滤我的DataGridView,即.85,200,404.005等...
我开始时:
bs.Filter = "FMFileNumber = "
+ e.Node.Text.Substring(0, e.Node.Text.IndexOf(" - ")).ToString();
但当值为整数时,这给了我以下异常(不知道为什么它首先被视为整数):
{"Cannot perform '=' operation on System.String and System.Int32."}
我在这里的一个博客上看到要在过滤器内转换,所以我改为:
bs.Filter = string.Format("FMFileNumber = convert({0}, System.String)",
e.Node.Text.Substring(0, e.Node.Text.IndexOf(" - ")).ToString());
这对于带有小数点左边的数字的值似乎没有用,但对于带有小数的值则不行。在后一种情况下,我得到了一个空白的数据网格视图。
为什么呢?有更可靠的过滤方法吗?
getFileAndColumns();
BindingSource bs = new BindingSource();
dgvColumns.DataSource = tbltAttributes;
bs.DataSource = dgvColumns.DataSource;
bs.Filter = string.Format("FMFileNumber = convert({0}, System.String)",
e.Node.Text.Substring(0, e.Node.Text.IndexOf(" - ")).ToString());
//bs.Filter = "FMFileNumber = " + e.Node.Text.Substring(0, e.Node.Text.IndexOf(" - ")).ToString();
dgvColumns.DataSource = bs;