我应该如何向动态数据Web应用程序添加其他搜索/过滤条件?
我使用Northwind数据库创建了一个动态数据Web应用程序,我正在使用Employees表的自定义页面(基于ListDetails.aspx页面模板).我想在页面中添加额外的search/filter/where参数.默认情况下,基于FilterRepeater控件动态创建where参数集合,该控件也是基于Employee Table具有的"外键"关系动态创建的.
为了尝试添加其他搜索条件,我已经绑定到GridView的LinqDataSource的Selecting事件,并尝试将其他项添加到LinqDataSourceSelectEventArgs的WhereParameters集合中.
问题是我无法指定需要执行哪种类型的比较.WhereParameters集合只接受String和Object,但不接受如何比较它们.我真正希望能够做的是添加谓词委托的集合......
我该如何向此页面添加其他搜索条件?通过应用于LINQ To SQL实体的属性(如果是,如何)?如果标准/标准不是基于实体本身,那么在这种情况下如何添加搜索条件呢?
亚伦霍夫曼
单击GridView控件中的"删除"按钮/链接时出现此错误.
启用"删除","插入"或"更新"操作时,LinqDataSource [DataSource]不支持Select属性
我真的不明白为什么我收到这个错误,因为我已经在我的网站的不同网页上做了同样的事情,但是在这种情况下从中读取数据的表没有任何外键,这个确实.这就是我收到错误的原因吗?
如果重要,则将AutoGenerateDeleteButton属性设置为,True并且我使用a linqdatasource从数据库中检索数据.
任何输入将不胜感激:)
我在项目中添加了一个LinqToSQL类,并将其放在我的App_code文件夹中.
然后我将LinqDataSource添加到新网页并尝试将其配置为使用此类,但它不会在DataContext下拉列表中显示为选项.
我将类移动到项目的根目录,现在可以在DataContext下拉框中找到它.
我用1页创建了一个新项目并再次尝试,但仍然是同样的事情.如果该类不在我的根目录中,则它不可用.
我已经搜索了互联网,我找到的所有内容都表明该类应该在我的App_code文件夹中,但如果我把它放在那里它就不起作用.
如果我把它放在App_code文件夹中,有谁知道为什么这个类不可用.
谢谢
我有一个数据库,我已经创建了一个DBML Linq-to-SQL文件来表示这个数据库.我创建了一个新的aspx页面并将linqdatasource和formview控件放到它上面.当我配置linqdatasource时,它只给我一个选择*从一个表...但我想从多个表拉.例如,我有像simple_person,simple_address,simple_phone这样的表,我想从所有这些表中提取.我怎么能做到这一点?
我有一个像这样定义的LinqDataSource:
<asp:LinqDataSource ID="LinqDataSource1" runat="server" OnSelecting="LinqDataSource_FileSelecting"></asp:LinqDataSource>
Run Code Online (Sandbox Code Playgroud)
在LinqDataSource_FileSelecting中,它返回/设置a List<string>到e.Result,其中e是LinqDataSource的Selecting事件中的EventArgs(LinqDataSourceSelectEventArgs).我在页面加载时收到此错误:
"LinqDataSource'LinqDataSource1'的ContextTypeName属性必须指定数据上下文类型."
基于此消息并查看文档,我需要设置LinqDataSource的ContextTypeName和TableName属性.ContextTypeName通常是类的名称,TableName将是该类中可枚举属性的名称.
当数据源是一个List<string>我不知道我可以分配什么ContextTypeName或TableName.我已经尝试System.Collections.Generic.List<string>了ContextTypeName,但是没有用,我收到了"无法加载类型" System.Collections.Generic.List<string>'
我意识到当List<string>在Selecting事件中生成数据源时,LinqDataSource可能不是适当的控件.但是我可以为此场景设置ContextTypeName和TableName吗?
我在VB.net中使用一个ASP.net网站项目,并向其中添加了LINQ到SQL数据类,以便使用许多LinqDataSource控件。昨天我的项目运行良好,但昨晚关闭并于今天早上启动后,我现在收到此错误:
编译错误描述:在编译为满足此请求所需的资源期间发生错误。请查看以下特定的错误详细信息,并适当地修改您的源代码。
编译器错误消息:BC30002:类型'System.Data.Linq.Mapping.DatabaseAttribute'未定义。
源错误:
<Global.System.Data.Linq.Mapping.DatabaseAttribute(Name:="xxxx_pcf")> _
Partial Public Class PCFDataContext
Inherits System.Data.Linq.DataContext
Run Code Online (Sandbox Code Playgroud)
该文件由Visual Studio 2010自动生成,但不会引发任何错误。我只在运行时得到错误。
互联网上的其他地方,人们建议删除命名空间声明,只有我没有。
我在这里还发现有人说System.Data.Linqweb.config文件中可能缺少对该引用的引用。不过,对我而言,我的web.config没问题。
同样在这里,有一个关于VS由于多元化原因重命名类的警告-再次对我无效。
所以我被困住了。
我试图使用 VS 2008 在网页上填充下拉列表控件,但不断收到无法加载 DataContext 的错误。我的后端是 SQLx server 2005 DB。我创建了一个 Link To SQL 数据上下文,其中有 1 个表。我的 LinKDataSource 如下 - asp:LinqDataSource ID="LinqDataSource1" runat="server"ContextTypeName="DACDataContext" TableName="portfolio"> /asp:LinqDataSource
我的下拉列表定义是: asp:DropDownList ID="ddlPortfolio" runat="server" Width="165px" DataSourceid="LinqDataSource1" DataTextField="porfolio_name" DataValueField="portfolio_id"> /asp:DropDownList 我可以在我的属性中看到我的 DatContext 的 ContextTypeName 是 DACDataContext
我得到的具体错误是: HttpException (0x80004005): 无法加载类型“DACDataContext”。
和
InvalidOperationException:找不到 LinqDataSource“LinqDataSource1”的 ContextTypeName 属性中指定的类型。]
我知道这一定是一件非常愚蠢的事情,但我已无计可施。
请帮忙。
当我尝试更新我使用的gridview <asp:LinqDataSource>并在此数据源中启用更新和删除时,我得到一个例外告诉我:
javaScript运行时错误:Sys.WebForms.PageRequestManagerServerErrorException:找不到与ViewState中存储的原始值中的给定键匹配的行.确保'keys'字典包含与从上一个Select操作返回的行对应的唯一键值.
我该如何解决这个例外?
我们有一个巨大的列表(比如100,000),需要转换DataTable为SqlBulkcopy.
你能指导什么是最快的方法,而不使用for循环?现在我们这样做 - 在下面的代码listDos是对象列表
using (var dataTable = new DataTable(dataTableName))
{
dataTable.Locale = CultureInfo.CurrentCulture;
var columns = new[]
{
new DataColumn("Id", typeof(int)),
new DataColumn("FkId", typeof(int)),
new DataColumn("Status", typeof(string)),
new DataColumn("RecordFrom", typeof(DateTime))
};
dataTable.Columns.AddRange(columns);
foreach (ObjectDo listDo in listDos)
{
var row = dataTable.NewRow();
if (rebuildDo.Id != null) row["Id"] = rebuildDo.Id;
if (rebuildDo.FkId!= null) row["FkId"] = rebuildDo.FkId;
row["Status"] = rebuildDo.Status;
row["RecordFrom"] = rebuildDo.RecordFrom;
dataTable.Rows.Add(row);
}
return dataTable;
}
Run Code Online (Sandbox Code Playgroud) asp.net ×3
datacontext ×3
linq ×3
c# ×2
gridview ×2
linq-to-sql ×2
dynamic-data ×1
sqlbulkcopy ×1
vb.net ×1