ASP.NET DataView错误

时间:2014-05-24 03:27:30

标签: asp.net sql visual-studio-2010 compiler-errors dataview

我在ASP.NET中使用DataView时遇到了一些麻烦。我的代码非常简单,我只想从名为COURSEINFO的MS Access表中提取信息,将信息放入DataSet,并使用DataView作为GridView的源代码。我意识到使用SQL数据源来填充GridView会更容易,但我想使用DataView以便以后可以扩展它。

但是,这行代码给了我一个编译错误:

dv = dv = ds.Tables(0).DefaultView

其中dv是我的DataView,ds是我的DataSet。错误发生在“=”之后,dv = ds.Tables(0).DefaultView以蓝色下划线显示。

奇怪的是,这段代码几天前对我有用,我不知道为什么不再存在。我得到的错误说:“类型'System.Data.DataView'的值无法转换为'WebApplication1.DataView'

这是我的代码:

    Dim connetionString As String
    Dim connection As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.ACE.OleDb.12.0;" & "Data Source=|DataDirectory|\EXSpring2014.accdb")
    Dim command As OleDb.OleDbCommand
    Dim adapter As New OleDb.OleDbDataAdapter
    Dim sql As String = "Select * from COURSEINFO"
    Dim ds As DataSet = New DataSet
    Dim dv As DataView

    connection.Open()
    command = New OleDb.OleDbCommand(sql, connection)
    adapter.SelectCommand = command
    adapter.Fill(ds, "Create_DataView")
    adapter.Dispose()
    command.Dispose()
    connection.Close()
    dv = ds.Tables(0).DefaultView

        GridView1.DataSource = dv

当我实际尝试加载Web表单时,我在HTML代码中收到错误。我希望看到它,URL是 http://ime1.ime.calpoly.edu/ime312_move1x/ime312_5/WebApplication1/camtasia.aspx

最后,在进行此操作时,我生成了一个方法存根,我最终不需要“DataView”。我认为这可能是一个原因,但我不知道该怎么办。

1 个答案:

答案 0 :(得分:0)

红鲱鱼是错误:

  

“类型'System.Data.DataView'的值无法转换为'WebApplication1.DataView'

编译器试图在这里解释什么?

由于.Net框架坚持强类型,因此开发人员只需将值分配给相同类型的变量。我们理解,我们无法将List<String>分配给Form。如果你尝试了,你会看到类似的错误。

当您将两种类型命名为相同时,就会出现混淆,在本例中为DataView。您不能在同一名称空间中使用相同的命名类型,因此必须有两个DataView类型,确实存在:名称空间System.Data中的一个和名称空间中的一个WebApplication1

在您的代码中没有看到,但我必须假设您在Web项目的某处创建了一个名为DataView的网页或其他类型。如果未明确指定名称空间,则编译器会确定应使用当前名称空间中的类型。

要解决这个编译错误,你只需要明确哪个DataView你想要一个变量。

dv的类型更改为System.Data.DataView类型,一切正常:

Dim dv As System.Data.DataView

阅读关于artcile Namespaces in Visual Basic的更多背景知识。