Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
初学者:数据列表在asp.net/vb.net中如何工作?_Asp.net_Vb.net_Ado.net - Fatal编程技术网

初学者:数据列表在asp.net/vb.net中如何工作?

初学者:数据列表在asp.net/vb.net中如何工作?,asp.net,vb.net,ado.net,Asp.net,Vb.net,Ado.net,我对asp.net非常陌生,我有一个关于数据列表的一般性问题。 我能让它工作,但我不明白到底是怎么回事。 我想我需要有人给我这个理论 首先,我连接到数据库: 然后我像这样输出它: 以下是我的问题: -为什么datalist拉取field2成功? -MyCommand.FillDS、field1和DS.Tablesfield1.DefaultView是否毫无意义? -我想我的底线问题是,如果我可以输出任何字段,为什么我必须在vb中指定字段 我想我需要一些一般性的指导…我用c开发asp.net应用程

我对asp.net非常陌生,我有一个关于数据列表的一般性问题。 我能让它工作,但我不明白到底是怎么回事。 我想我需要有人给我这个理论

首先,我连接到数据库:

然后我像这样输出它:

以下是我的问题: -为什么datalist拉取field2成功? -MyCommand.FillDS、field1和DS.Tablesfield1.DefaultView是否毫无意义? -我想我的底线问题是,如果我可以输出任何字段,为什么我必须在vb中指定字段


我想我需要一些一般性的指导…

我用c开发asp.net应用程序,我不得不使用VB一段时间,以便对此有所了解

首先,我非常确定在SqlDataAdapter填充方法中,它只是将所有数据放入一个名为field1的表中,该表位于名为“DS”的数据集中:

MyCommand.Fill(DS, "field1") 
MyDataList.DataSource = DS.Tables("field1").DefaultView
然后指示数据列表在数据集“DS”内使用名为“field1”的表

在您的标记中,您只需输出列,就可以在代码中将表标记为“field1”,从而导致混淆

尝试将表名从field1更改为TestTable之类的名称。。。它应该仍然有效

例如

请记住,在您定义保存结果的表的名称的代码中,这可以被称为任何名称,而不是列名-您希望输出的列由您的标记决定。。。正如你所做的那样

最后,数据集可以保存表数据的多个结果:

MyCommand As New SqlDataAdapter("select * from employee", MyConnection)
MyCommand.Fill(DS, "EmployeeTable")

MyCommand As New SqlDataAdapter("select * from product", MyConnection)
MyCommand.Fill(DS, "ProductTable")

MyCommand As New SqlDataAdapter("select * from order", MyConnection)
MyCommand.Fill(DS, "OrderTable")
您的数据集现在将有3个结果表集,标记为EmployeeTable、ProductTable和OrderTable

要将这些表中的任何一个分配给控件,请使用以下命令:

MyDataList.DataSource = DS.Tables("ProductTable").DefaultView

也许您的代码中的一些清晰信息有助于解释:

...
MyCommand.Fill(DS, "TABLENAME")
MyDataList.DataSource = DS.Tables("TABLENAME").DefaultView
...
回答问题1:

为什么数据列表要拉字段2 成功

在您的代码块中,有一个字段1,表名通常会出现在该字段中,因此在查看代码时可能会引起一些混乱。datalist正确地提取字段field1,因为它是一个字段,并且是您的SQL查询。您的SQL是select*,我假设它选择field1和field2作为查询的一部分

回答问题2:

是MyCommand.FillDS,字段1 和DS.Tablesfield1.DefaultView 毫无意义

Fill方法是从数据库中提取数据并填充数据集。在代码中,在参数中指定field1,该参数实际上是表名

将datalist的datasource设置为DefaultView实际上是将datalist绑定到数据集中的datatable,而不是绑定到字段:

MyDataList.DataSource = DS.Tables("TABLENAME").DefaultView
回答问题3:

我想我的底线问题是, 为什么我必须在列表中指定字段 vb是否可以输出任何字段


您仍然需要指定要输出到应用程序的字段。datalist正在对datatable中的行进行迭代,并要求您指定要输出到屏幕的每一行中的列。

Rolla的三位成员就这个主题发表了一些不错的文章,包括:
MyDataList.DataSource = DS.Tables("ProductTable").DefaultView
...
MyCommand.Fill(DS, "TABLENAME")
MyDataList.DataSource = DS.Tables("TABLENAME").DefaultView
...
MyDataList.DataSource = DS.Tables("TABLENAME").DefaultView