验证数据库中的值

时间:2015-07-06 13:36:33

标签: c# asp.net

我想创建一个检查我的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;
        }
    }
}

2 个答案:

答案 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);
相关问题