gpt4 book ai didi

c# - DropDownList.DataTextField 不能绑定(bind)到数据集?

转载 作者:行者123 更新时间:2023-11-30 15:34:12 31 4
gpt4 key购买 nike

我正在尝试将 dataset 绑定(bind)到 dropdownlist,这会引发 HttpException

这是我想做的

if (dsGroupsNotOnFestival.Tables[0].Rows.Count > 0)
{
//Bind dataset to new group selection
ddlNewGroup.DataSource = dsGroupsNotOnFestival.Tables[0].DefaultView;
ddlNewGroup.DataValueField = "band_id";
ddlNewGroup.DataTextField = "band_naam";
ddlNewGroup.DataBind();
}
else
{
ddlNewGroup.Items.Add(new ListItem("No groups to add"));
}

异常信息:

DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'band_naam'.

我绝对肯定 dataset 包含标题为 band_naam 的列。可以看到,绑定(bind)DataTextField时抛出异常,说明DataValueField绑定(bind)正确,对吧?

编辑:

这是存储过程:

USE [groep2_festivals]
GO
/****** Object: StoredProcedure [dbo].[GetGroupsOfFestival] Script Date: 14-05-13 12:31:18 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Robbie Vercammen
-- Create date: 2013-05-09
-- Description: Getting all groups for a defined festival
-- =============================================
ALTER PROCEDURE [dbo].[GetGroupsOfFestival]
(
@festId nvarchar(4)
)
AS
BEGIN
DECLARE @query varchar(255)

SELECT b.*, p.*
FROM bands b
JOIN bandsperfestival bpf ON b.band_id = bpf.band_id
JOIN podia p ON p.pod_id = bpf.pod_id WHERE fest_id LIKE @festId
EXEC(@query)
END

注意到 b.*bands b 了吗?现在这张 table :

enter image description here

这个存储过程已被多次使用,所以我很确定它能正常工作。但这里可能是我忘记提及的最重要的代码:

//Filling dataset with groups not on this festival
dsGroupsNotOnFestival.Tables.Add(new DataTable());
foreach (DataRow row in dsGroupsAll.Tables[0].Rows)
{
if (!dsGroupsPerFestival.Tables[0].Rows.Equals(row))
{
dsGroupsNotOnFestival.Tables[0].ImportRow(row);
}
}

再一次,DataSet dsGroupsAll 之前被使用过,所以数据存在:)

@manish 米什拉dsGroupsAll 填充了上面相同的存储过程。证明里面确实有数据:

enter image description here

对于那些仍然关注的人,我已经确认 dsGroupsNotOnFestival 中有 14 行。当我尝试以简单的方式获取值时,例如:

String strResult = dsGroupsNotOnFestival.Tables[0].Rows[0][0].ToString();

我收到一个异常,提示无法找到第 0 列...这是为什么?

最佳答案

I'm absolutely positive that the dataset contains a column with the title band_naam.

我理解你的感受,但是我绝对肯定没有错误因为这个错误非常明显:

does not contain a property with the name 'band_naam'

再看看填充DataSet 的代码。 DefaultViewDataTable 的完美形象,它当然是您查询的结果集,因此您用来填充此 DataTable< 的查询 缺少此字段。

也许这是一个计算字段,而您忘记了 AS 关键字来为其指定列名。


编辑

根据您的反馈(即查询和架构的屏幕截图),我想说 Habib 可能在评论中一语中的,更改此行:

ddlNewGroup.DataSource = dsGroupsNotOnFestival.Tables[0].DefaultView;

到这一行:

ddlNewGroup.DataSource = dsGroupsNotOnFestival.Tables[0];

我个人从来没有遇到过绑定(bind)到 DefaultView 的问题,但我不觉得还有任何其他可能性。

关于c# - DropDownList.DataTextField 不能绑定(bind)到数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16542650/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com