//newslist 获得结果成功 已验证!
listbox.DataSource = newslist.Tables[0].DefaultView;
listbox.DisplayMember = "topic";
listbox.ValueMember = "id";
//listbox显示也成功!
但是在点击listbox事件中我读取listbox.SelectedItems.ToString();
却得到了“System.Windows.Forms.ListBox+SelectedObjectCollection“这个字符串,而不是我点选的topic!!奇怪!!
还有当我的listbox初始化后默认选中的是第一行,这个时候listbox.SelectedValue.ToString()明明是该行捆绑的id(我把它放到一个label中看到的),但是如果把listbox.SelectedValue.ToString()作为参数代入SQL查询语句的id中,就会出错!而我如果写一个字符串的id比如“1816”,这样就没问题,事实上那个listbox.SelectedValue.ToString()的值就是“1816”,我已经确认!
不知道怎么回是啊!
6 个解决方案
#1
请教大家啊!
#2
不知道是怎么回事!
#3
SelectedItems.ToString() 得到的当然是System.Windows.Forms.ListBox+SelectedObjectCollection了,你要用SelectedItem.ToString();
至于你用ToString()取值做参数再查询会出错,无我估计可能是因为ToString()取得的值是在后面加上了空格“ ”的,好象SQLSever中自动把Char类型字段用空格添满。我在Delphi中也遇到过,我是用的Trim() 函数把空格给去掉后再使用的,但在VS.net中怎样解决我还没找到比较好的办法,希望其它朋友提示一下
至于你用ToString()取值做参数再查询会出错,无我估计可能是因为ToString()取得的值是在后面加上了空格“ ”的,好象SQLSever中自动把Char类型字段用空格添满。我在Delphi中也遇到过,我是用的Trim() 函数把空格给去掉后再使用的,但在VS.net中怎样解决我还没找到比较好的办法,希望其它朋友提示一下
#4
用这个listbox.SelectedItems.text获取你的选择
#5
我是用的是SelectedItem.ToString();
但是返回的变成了 system.data.datarowview
但是返回的变成了 system.data.datarowview
#6
我想你的SelectedItem.ToString()的调用者是不是弄错了,应该是ListBox.SelectedItem.ToString(),那是不会得到“System.data.datarowview”的。我估计你是用DataRow调用的
#1
请教大家啊!
#2
不知道是怎么回事!
#3
SelectedItems.ToString() 得到的当然是System.Windows.Forms.ListBox+SelectedObjectCollection了,你要用SelectedItem.ToString();
至于你用ToString()取值做参数再查询会出错,无我估计可能是因为ToString()取得的值是在后面加上了空格“ ”的,好象SQLSever中自动把Char类型字段用空格添满。我在Delphi中也遇到过,我是用的Trim() 函数把空格给去掉后再使用的,但在VS.net中怎样解决我还没找到比较好的办法,希望其它朋友提示一下
至于你用ToString()取值做参数再查询会出错,无我估计可能是因为ToString()取得的值是在后面加上了空格“ ”的,好象SQLSever中自动把Char类型字段用空格添满。我在Delphi中也遇到过,我是用的Trim() 函数把空格给去掉后再使用的,但在VS.net中怎样解决我还没找到比较好的办法,希望其它朋友提示一下
#4
用这个listbox.SelectedItems.text获取你的选择
#5
我是用的是SelectedItem.ToString();
但是返回的变成了 system.data.datarowview
但是返回的变成了 system.data.datarowview
#6
我想你的SelectedItem.ToString()的调用者是不是弄错了,应该是ListBox.SelectedItem.ToString(),那是不会得到“System.data.datarowview”的。我估计你是用DataRow调用的