【问题标题】:What is the class name/type of dr["MyColumn"] object in .Net?.Net 中 dr["MyColumn"] 对象的类名/类型是什么?
【发布时间】:2014-03-12 16:44:27
【问题描述】:

我想创建函数并传递值以减少编码中的重复代码。

GridView ItemDataBound 事件中会这样调用

DataRowView drv = e.Row.DataItem as DataRowView;
MyFunc(drv["HasDonePart1"]);
MyFunc(drv["HasDonePart2"]);
MyFunc(drv["HasDonePart3"]);
etc...

函数如下所示

private void MyFunc ((ClassName) item)
{
    if (item == DBNULL.value)
    {
       //do something
    }
    else
    {
       string myValue = item.ToString();
       //do other things
    }
}

但我不知道我应该在我的方法中放入什么来接受对象。

【问题讨论】:

  • 信息不足。 DataRowView 的索引器被声明为返回 object;它实际返回的内容取决于列的类型。您可以使用调试器查找或打印出drv["HasDonePart1"].GetType().FullName
  • 它返回 System.DBNull。实际上它返回的是对象的类型而不是值的类型,对吧?

标签: c# asp.net datarowview


【解决方案1】:

MyFunc 改为接受object,改为:

private void MyFunc(object item)
{
    if (item == DBNull.Value)
    {
        // Do something
    }
    else if (item is string)
    {
    }
    else if (item is decimal)
    {
    }

    // etc.
}

【讨论】:

    【解决方案2】:

    DataRowView.Item 索引属性返回对象,所以这就是您的方法应该作为参数的内容。见http://msdn.microsoft.com/en-us/library/0k5w061k(v=vs.110).aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-20
      • 2016-10-07
      • 2015-03-11
      • 1970-01-01
      相关资源
      最近更新 更多