- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 LinqDataSource 来填充网格。但是现在我需要 LinqDataSource 生成的 SQL 查询来传递整个方法(不,我不能修改方法以不需要 SQL 查询)。
有没有办法从实例化和配置的 LinqDataSource 中获取生成的 SQL 查询?
最佳答案
希望这对您有所帮助。
使用下面的函数将返回一个 SqlQueryText您可以从该对象重建查询。
获得通过您可以使用 .Params 属性的参数
public static SqlQueryText GetFullQueryInfo(DataContext dataContext, IQueryable query)
{
DbCommand dbCommand = dataContext.GetCommand(query);
var result = new SqlQueryText();
result.Text = dbCommand.CommandText;
int nParams = dbCommand.Parameters.Count;
result.Params = new ParameterText[nParams];
for (int j = 0; j < nParams; j++)
{
var param = new ParameterText();
DbParameter pInfo = dbCommand.Parameters[j];
param.Name = pInfo.ParameterName;
param.SqlType = pInfo.DbType.ToString();
object paramValue = pInfo.Value;
if (paramValue == null)
{
param.Value = null;
}
else
{
param.Value = pInfo.Value.ToString();
}
result.Params[j] = param;
}
return result;
}
举个例子
var results = db.Medias.Where(somepredicatehere);ClassThatHasThisMethod.GetFullQueryInfo(yourdatacontexthere, results);
编辑:
抱歉忘记包含 SqlQueryText 数据结构
public struct SqlQueryText
{
public ParameterText[] Params;
public string Text;
}
public struct ParameterText
{
public string Name;
public string SqlType;
public string Value;
}
关于sql - 我可以获得从 LinqDataSource 生成的 T-SQL 查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/533343/
页面中有一个GridView和一个LinqDataSource,以及一些按钮,它们的操作与GridView及其LinqDataSource无关。为什么在这些按钮的每次回发时,LinqDataSourc
为什么 LinqDataSource 中 Select 属性的语法与我会在 C# 中内联编写的 Linq 如此不同?我的意思是: new (Id As MyId, Name As MyName) 对比
我想在页面上使用 LinqDataSource 控件并限制返回的记录数量。我知道如果我使用代码隐藏我可以做这样的事情: IEnumerable values = Enumerable.Range(0,
我在我的项目中添加了一个 LinqToSQL 类并将它放在我的 App_code 文件夹中。 然后,我将 LinqDataSource 添加到新网页并尝试将其配置为使用此类,但它并未在 DataCon
将我的第一次尝试作为使用 LinqDataSource 的 OnSelecting 方法以便我可以指定更复杂的查询,我写了这样的: protected void CategoriesDataSourc
我有一个数据库,并且创建了一个 DBML Linq-to-SQL 文件来表示该数据库。我创建了一个新的 aspx 页面,并在其上放置了 linqdatasource 和 formview 控件。当我配
我正在尝试创建一个 LinqDataSource 以绑定(bind)到 ASP.NET 表单中的 DropDownList。我只想根据日期显示元素(这是数据库中的字段之一)。 基本上,我要显示的元素是
我目前在 ASP.NET 页面上有一个 LinqDataSource,它用作 FormView 的数据源。我需要根据通过查询字符串传递的参数动态更改 where 子句。除了我希望最终用户能够使用通配符
我有一个绑定(bind)到 LDS 之一的下拉列表。这是相关代码: LinqDataSource3 的代码是: 现在我得到这种类型的值: {Name = John} {Name = Eric
我目前正面临一个旧项目的奇怪问题。该项目使用 FormView 来编辑数据。 FormView 绑定(bind)到 LinqDataSource。更新编辑的对象后,我确实收到了 System.Data
在 C#.net 中,我有以下数据源设置,我试图在后面的代码中动态分配一个 WHERE 子句... 后面的代码看起来像这样...... LinqDataSource1.Where = "MyDat
我目前正在使用 LinqToSQL 开发 ASP.NET 4.5 应用程序。我使用 asp:GridView 控件。在我的数据源查询方法中,我需要从 SQL Server 中查询几乎相同字段的 2 个
如何从 LinqDataSource 获取 DataTable? 我找到了 DataTableExtensions.CopyToDataTable() 方法,但不知道如何将其与 LinqDataSou
我需要为我的 LinqDataSource 创建一个 WHERE 子句这取决于当前登录的用户。当然,我可以在代码隐藏中访问当前登录的用户,我特别需要用户 ID 才能从数据库中仅获取属于他/她的数据。
是否有一些优雅的方法可以向与 LinqDataSource 绑定(bind)的 DropDownList 添加一个空选项? 最佳答案 以下是在列表顶部添加值的方法。它可以是一个空字符串,也可以是一些文
我有一个 Linq 数据源,它通过名为 SubmitTo 的字段对表中的记录进行分组:路由。我的选择语句是这样的——“新的(键作为 SubmitTo,Count() 作为计数,它作为路由)”。现在 S
我在使用 Paging 和 LinqDataSource 作为数据源获取 Gridview 中显示的项目的总行数时遇到问题。 我尝试了几种方法: protected void GridDataSour
我有两个表: Entity ID (PK, int) Name Users Entity_ID (FK to the Entity.ID) FName LName 现在我想使用 QueryString
我正在使用 LinqDataSource 来填充 ASP.NET 中的基本 GridView。用户可以过滤结果,因此我在 LinqDataSource 中使用了一些 WhereParameters 和
我有两个表: 订单 OrderProducts - 一个订单可以有 1 到多个与之关联的 orderProducts 记录。 我想做的(未成功)是使用 LinqDataSource 实现 GridVi
我是一名优秀的程序员,十分优秀!