remelost
路人甲
路人甲
  • 注册日期2007-05-18
  • 发帖数24
  • QQ
  • 铜币234枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1525回复:1

[求助]查询结果显示的问题

楼主#
更多 发布于:2008-04-02 23:15
<DIV>实现了属性查询,可是想把属性结果在一个表里显示出来.思路是这样的:我用了一个datatable,先把查询结果的要显示属性存在里面,然后通过datagridview显示(其数据源是datatable).代码如下,由于初学不知道错在哪了,还请各位多多执教:<BR><BR>                IQueryFilter pQueryFilter=new QueryFilterClass();<BR>                IFeatureLayer pFeatureLayer;<BR>                pQueryFilter.WhereClause = textBoxWhereClause.Text;<BR>                pFeatureLayer = GetLayerByName(comboBoxLayers.SelectedItem.ToString()) as IFeatureLayer;<BR>                pFeatureSelection = pFeatureLayer as IFeatureSelection;<BR>                int iSelectedFeaturesCount = pFeatureSelection.SelectionSet.Count;<BR>                pFeatureSelection.SelectFeatures(pQueryFilter, selectmethod, false);//执行查询<BR>                <BR>                //如果本次查询后,查询的结果数目没有改变,则认为本次查询没有产生新的结果<BR>                if (pFeatureSelection.SelectionSet.Count == 0)<BR>                {<BR>                    MessageBox.Show("没有符合本次查询条件的结果!");<BR>                    return;<BR>                }<BR>             DataTable presource = new DataTable();<BR>                <BR>                DataColumn pname1 = new DataColumn("name1", typeof(string));<BR>                DataColumn pname2 = new DataColumn("name2", typeof(string));<BR>                DataColumn pname3 = new DataColumn("name3", typeof(string));<BR>                <BR>                presource.Columns.Add(pname1);<BR>                presource.Columns.Add(pname2);<BR>                presource.Columns.Add(pname3);<BR>                IEnumFeature pIEnumFeature;<BR>                IFeature pIFeature;<BR>                pIEnumFeature = pFeatureSelection as IEnumFeature;<BR>                pIFeature = pIEnumFeature.Next();<BR>                while (pIFeature != null)<BR>                {<BR>                    string name1 = pIFeature.get_Value(0).ToString();<BR>                    string name2 = pIFeature.get_Value(2).ToString();<BR>                    string name3 = pIFeature.get_Value(3).ToString();<BR>                    DataRow newrow = presource.NewRow();<BR>                    MessageBox.Show("name1");<BR>                    newrow["name1"] = name1;<BR>                    newrow["name2"] = name2;<BR>                    newrow["name3"] = name3;<BR>                    presource.Rows.Add(newrow);<BR>                    pIFeature = pIEnumFeature.Next();<BR>                }<BR>                DataGridViewColumn dcolumn1 = new DataGridViewColumn();<BR>                DataGridViewColumn dcolumn2 = new DataGridViewColumn();<BR>                DataGridViewColumn dcolumn3 = new DataGridViewColumn();<BR>                dataGridView1.Columns.Add(dcolumn1);<BR>                dataGridView1.Columns.Add(dcolumn2);<BR>                dataGridView1.Columns.Add(dcolumn3);<BR>                dataGridView1.DataSource = presource;<BR><BR>编译通过,但是运行该模块是,提示"<a href="http://www.2mysite.net/blogview.asp?logID=1223;cateID=1" target="_blank" ><FONT size=3><FONT color=#c60a00>未将</FONT><FONT color=#0000ff>对象</FONT><FONT color=#c60a00>引用设置为</FONT><FONT color=#0000ff>对象的实例</FONT></FONT></A>",什么原因?</DIV>
喜欢0 评分0
492826401
路人甲
路人甲
  • 注册日期2009-03-02
  • 发帖数9
  • QQ
  • 铜币125枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2009-04-30 21:18
<P>pIEnumFeature.reset()</P>
<P>while(pIEnumFeature.movenext)</P>
<P>{</P>
<P>pIFeature = pIEnumFeature.current</P>
<P>....</P>
<P>}</P>
<P>不知道行不行</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部