ASP.NET MVC - System.Data.DataSet中未提及的问题(ASP.NET

2019-10-18 01:14发布

嗯,首先对不起,这个问题一定是非常简单的为你们,但我挣扎自己就可以了,我需要使它工作:(嗯,我试图用数据集上我的应用程序

当我使其我得到:

The type 'System.Data.DataSet' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Data

在我的应用System.Data已经被由C引用:\ WINDOWS \ Microsoft.NET \框架\ V2.0.50727 \ System.Data.dll中

和我使用我的使用条款,以及

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Mvc;

此数据集从一个WebService那么如何解决这个问题的任何想法的回应?

PS。 我不知道是否有帮助,但我使用nHaml渲染我的看法

非常感谢


更新:

我发现,现在唯一的解决办法是,而不是将一个DataSet的视点转换数据集到

<List<List<String>>

并且通过这样的整个数据集通过一个环

List<List<String>> myList = new List<List<String>>();

foreach (DataRow row in dsTrades.Tables[0].Rows)
{
    List<String> myListColumns = new List<String>();

    for (var index = 0; index < dsTrades.Tables[0].Columns.Count; index ++)
    {
        myListColumns.Add(row[index].ToString());
    }

    myList.Add(myListColumns);
}

// THIS SHOULD BE THE DATASET AND NOW 
// IT'S CONVERTED TO A LIST WITH STRINGS LIST INSIDE
viewModel.Trades = myList; 

return View(viewModel);

其实这完全是疯狂的ins't呢?

所有这些工作可以如使用DataSet中轻松完成到视图直接,我希望有人能帮助我用更简单的方式做到这一点

谢谢 :)


UPDATE(解决方案)

西蒙的回答是真正有效的,它的工作在第一次尝试增加对System.Data和System.Xml命名空间之后,但在同一时间,乔什的回答呈现出非常好的和冷静的方式与数据集,这在我看来效果要好得多工作我想现在我会去了。

感谢您的帮助

Answer 1:

尝试在nhaml配置中添加明确提及System.Data

<?xml version="1.0"?>

<configuration>
...
    <configSections>
            <section name="nhaml" type="NHaml.Configuration.NHamlConfigurationSection, NHaml"/>
    </configSections>
...
<nhaml autoRecompile="true">
            <assemblies>
                    <clear/>
                    ...
                    <add assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
            </assemblies>
            <namespaces>
                    <clear/>
                    ...
                    <add namespace="System.Data"/>
            </namespaces>
    </nhaml>

显然与其它参考资料和配置更换“......”



Answer 2:

我能想到的唯一的事情是,在页面的背景下,对System.Data引用是不可见的。

尝试添加在你的web.config命名空间:

<pages>
   <controls />
   <namespaces>
      <add namespace="System.Data"/>
   </namespaces>
</pages>

我知道这是不是真的你的问题的一部分,但我会建议建立充满代表你的数据表中的字段属性的类。 使用LINQ,您可以轻松地将行转换成类对象,并返回它们的列表。 下面是一些粗糙的(和未编译)代码。

[Serializable]
public class MyClass
{
   public string Property1 { get; set; }
   public string Property1 { get; set; }
}

你希望它是序列化的,这样web服务可以返回它作为XML或JSON(但你是返回的话)。 LINQ的会是这个样子:

var result = from r in dataSet.Table[0].Rows.AsEnumerable()
             select new MyClass() {
                Property1 = r["Field1"].ToString()
                Property2 = r["Field2"].ToString()
             };

return result.ToList();

在我个人的经验,数据集往往是资源的大量占用。 此外,LINQ的会比你的for循环更有效。

希望这可以帮助。



Answer 3:

删除Reffrence(system.Data)..和重新添加同一reffrence ..这可能是工作..



文章来源: ASP.NET MVC - System.Data.DataSet not referenced problem