我想创建一个检查我的timeZoneId
是否有效的方法。这应该通过针对我的数据库中的值验证timezoneId
来完成。我一直关注 Microsoft 的文章(请参阅下面的链接),但无法从数据库中的当前行中提取timeZoneId
。
本文正在使用txtEmail = datarow["Alias "].ToString();
来提取数据,但我正在处理int
值,因此这不起作用。此处发生错误:timezoneId = datarow[0];
我已尝试将其投放到int
,但似乎无法解决此问题。我的错误说明
无法将源类型“对象”转换为目标类型“int”
问题:如何从当前行正确提取timeZoneId
?
Microsoft链接: https://msdn.microsoft.com/en-us/library/s5z00s5e(v=vs.140).aspx
private void ValidateTimeZoneId(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
{
DataView dv;
DataSet dataSet = new DataSet();
dv = dataSet.Tables[0].DefaultView;
int timezoneId;
args.IsValid = false;
// Loop through table and compare each record against user's entry
foreach (DataRowView datarow in dv)
{
// Extract timezoneid from the current row
timezoneId = datarow[0];
// Compare timezoneid against user's entry
if (timezoneId == args.Value)
{
args.IsValid = true;
}
}
}
答案 0 :(得分:1)
你需要正确地施放它。它可以通过两种方式完成:
timezoneId = (int)datarow[0];
或
timezoneId = Convert.ToInt32(datarow[0]);
答案 1 :(得分:0)
您最好将timezoneId
声明为string
然后
string timezoneId;
timezoneId = datarow[0] as string;
// Compare timezoneid against user's entry
args.IsValid = (timezoneId != null && timezoneId == args.Value);