C# 输入字符串的格式不正确C ASP.NET
我是编程新手,目前正在一个C asp.net网站上工作,该网站通过加载的数据库填充Telerik RadComboBox 我有一个表单,它有15个以上的组合框,当我从这些组合框中选择值时,必须使用这些组合框选择来搜索数据库中一个非常大的表。gridView将显示返回的数据 我在我的项目的其余部分都使用了相同的代码格式,它工作得很好,但是当我从我的位置下拉框中选择一个项目来搜索我的数据库时,我得到了错误“输入字符串的格式不正确”,我不明白为什么 这是我的Location.cs课程 区域属性 区域法 在//Error行中,我得到的是“输入字符串格式不正确”错误,请提供任何建议。我不明白为什么我会有这个问题C# 输入字符串的格式不正确C ASP.NET,c#,asp.net,linq,C#,Asp.net,Linq,我是编程新手,目前正在一个C asp.net网站上工作,该网站通过加载的数据库填充Telerik RadComboBox 我有一个表单,它有15个以上的组合框,当我从这些组合框中选择值时,必须使用这些组合框选择来搜索数据库中一个非常大的表。gridView将显示返回的数据 我在我的项目的其余部分都使用了相同的代码格式,它工作得很好,但是当我从我的位置下拉框中选择一个项目来搜索我的数据库时,我得到了错误“输入字符串的格式不正确”,我不明白为什么 这是我的Location.cs课程 区域属性 区域法
提前感谢如果您希望locationID是一个数字,请确保组合框中每个项目的值都可以转换为数字。否则,即使使用tryparse,页面也无法正确运行
p/S:TryParse只会避免错误,不会将selectedvalue分配给locationID,因此会中断您的逻辑。看起来您的locationID是一个可空值-您无法将空值转换为Int32。您需要确保绑定到下拉列表的每个值成员不是空值,而是有效的整数。该错误意味着您试图从中解析整数的字符串实际上不包含有效的整数。使用Int.TryParseput一个断点,然后查看trvLocation.SelectedValue中得到了什么。您是否查看了trvLocation.SelectedValue返回的内容?什么类型和/或值?绑定到控件的是什么?我猜RadTreeView的值部分不能转换为int,因此提到TryParse实际上无法解决问题时出现+1错误。
[Key]
public int LocationID { get; se; }
[Column("Location")]
public string LocationName { get; set; }
private int? _ParentLocationID;
[Column]
public int? ParentLocationID
{
get
{
return _ParentLocationID;
}
set
{
if (value == 0)
{
_ParentLocationID = null;
}
else
{
_ParentLocationID = value;
}
}
}
[Column]
public int SiteID { get; set; }
[Column]
public bool Active { get; set; }
public static IEnumerable<Location> LoadActiveLocations(int siteID)
{
iThNkContext db = new iThNkContext();
var LocationList = (from l in db.Locations
where(l.SiteID == siteID && l.Active == true)
orderby l.LocationID
select l).ToList();
return LocationList;
}
RadTreeView trvLocation = (RadTreeView)cboLocation.Controls[2].FindControl("trvLocation");
if (trvLocation.SelectedValue != "")
{
var locationID = Convert.ToInt32(trvLocation.SelectedValue); //Error
predicates.Add(p => p.LocationID == locationID);
}