2013-01-22 21 views
2

这是我在我的ASP.net项目中的代码。我试图用我的web窗体将一些值存储到我的对象中,但它弹出一条错误消息:不能隐式地将类型'short'转换为'string'。将值传入对象时出错

textbox.Text = Convert.ToInt16(object.number); 
    lstbox.SelectedValue = Convert.ToInt16(object.ID); 

在我的对象类中,我已经将我的变量声明为int。请让我知道什么是错的。

回答

3

TextSelectedValue属性是字符串。为什么你会首先将这些值转换为short

textbox.Text = object.number.ToString(); 
lstbox.SelectedValue = object.ID.ToString(); 
3

您不能将非字符串值分配给接受字符串/文本值的属性。在你的情况下,你正试图给文本框的文本属性分配一个短的值。请使用Convert.ToStringToString()将值转换为字符串。

所以,你的代码应该是

textbox.Text = Convert.ToString(object.number); 

textbox.Text = object.number.ToString(); 

的情况是相同的,而分配列表框的设定值的属性。

lstbox.SelectedValue = Convert.ToString(object.ID); 
+0

感谢您的帮助!您的两个代码都可以取消该错误,并且我的项目现在可以顺利运行。还有一个问题,我的对象现在是否具有字符串值变量或int? – DoesItMatter

+0

不,您的对象的现有值不会改变,我们只是为了分配目的而转换值。 – TechDo

0

由于您要将值传递给对象,因此您应该有对象的变量=输入值。

object.number = Convert.ToInt16(textbox.Text); 
    object.ID = Convert.ToInt16(lstbox.SelectedValue);