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