C#listView数据绑定问题,我这样写的,为什么数据没有显示,求解?

MySqlConnectionconnection=newMySqlConnection();connection.Open();MySqlCommandcomm=new... MySqlConnection connection = new MySqlConnection();
connection.Open();
MySqlCommand comm = new MySqlCommand();
string strsql = "select num as 菜编号,name as 菜名,unit_price as 单价 from vegetables where caixiName='热菜'";
comm.CommandText = strsql;
comm.ExecuteNonQuery();
comm.Dispose();
DataSet ds = new DataSet();
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
listView1.View = View.Details;//设置显示方式
listView1.GridLines = true;
listView1.FullRowSelect = true;//是否选中多行
da.Fill(ds);
listView1.Columns.Add("菜编号", 80, HorizontalAlignment.Center);
listView1.Columns.Add("菜名", 80, HorizontalAlignment.Center);
listView1.Columns.Add("单价", 80, HorizontalAlignment.Center);
string[] st = new string[3];
foreach (DataRow row in dst.Tables[0].Rows)
{ st[0] = row["num"].ToString();
st[1] = row["name"].ToString();
st[2] = row["unit_price"].ToString();
st[3] = row["unit"].ToString();
ListViewItem item = new ListViewItem(st, 0);
listView1.Items.Add(item);
}}
展开
 我来答
lydx2006551139
2014-03-16 · TA获得超过138个赞
知道小有建树答主
回答量:177
采纳率:100%
帮助的人:141万
展开全部
你把Foreach 部份改成如下语句看行不  
 foreach (DataRow row in dst.Tables[0].Rows)
     { 
      ListViewItem item = new ListViewItem((row["num"]).ToString()); 
       item.SubItems.Add(row["name"].ToString());
       item.SubItems.Add(row["unit_price"].ToString());
       item.SubItems.Add(row["unit"].ToString());
       listView1.Items.Add(item);
      }
更多追问追答
追问
我上面的哪里写的有问题,我没看出来。我这个是点击treeView的节点是触发 treeView_AfterSelect事件,在这里面绑定的数据,这个有问题吗?看了半天没看出问题
追答
最好的办法是你自己调试!
第一步: 你先确定TreeView_AfterSelect事件有没有执行
第二步:如果已经执行事件 看看数据源是否正确!(当然是断点在获取数据源那里!)
第三步:数据源正确,然后看ListView 添加Column 和 Item的方法
一步一步检查,一步一步缩小范围 你的问题会迎刃而解。
ListView这控件 我也不是经常用,但是我能确定是 你前面写的代码应该是没什么问题的
string[] st = new string[3];
foreach (DataRow row in dst.Tables[0].Rows)
{ st[0] = row["num"].ToString();
st[1] = row["name"].ToString();
st[2] = row["unit_price"].ToString();
st[3] = row["unit"].ToString();
ListViewItem item = new ListViewItem(st, 0);
listView1.Items.Add(item);
}
现在一看你这段代码貌似有点问题:
申明一个长度为3个string 数组
st[3] 是怎么出来的长度只有3,而你这样长度没超出限制?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式