我将变量从List类传递给C#gridview。一切顺利,除非我包含返回int值的数据库列。如何将结果集的列值传递到列表中?导致错误的列是“本地”变量。
public class shuffleDataList
{
public string directLine { get; set; }
public int local { get; set; }
public string employeeNumber { get; set; }
}
List<shuffleDataList> callList = new List<shuffleDataList>();
if (rdr != null)
{
if (rdr.HasRows)
{
while (rdr.Read())
{
callList.Add(new shuffleDataList()
{
directLine = rdr.IsDBNull(0) ? null : rdr.GetString(0),
local = rdr.IsDBNull(1) ? 0 : rdr.GetInt32(1),
employeeNumber = rdr.IsDBNull(2) ? null : rdr.GetString(2),
});
}
}
代码将返回:
“指定的演员表无效。”
我已经尝试过GetInt32(按照上面的代码),但仍未解决问题。同样,如何将结果集的列int值传递到列表中?非常感谢你提前。
答案 0 :(得分:1)
我已经解决了将数据数据从db表列传递到C#list
的早期难题而不是使用它:
local = rdr.IsDBNull(1) ? 0 : rdr.GetInt32(1),
我试验并使用了它:
local = rdr.IsDBNull(1) ? 0 : Convert.ToInt32(rdr.GetValue(1)),
感谢所有试图解决我的问题的人。
答案 1 :(得分:0)
这应该有效:
...
local = rdr.IsDBNull(1) ? 0 : Parse(rdr.GetString(1)).GetValueOrDefault(0),
...
static int? Parse(string value)
{
int result;
if (int.TryParse(value, out result))
{
return result;
}
return null;
}