我在 Telerik 中使用RadGrid
,我正在尝试在代码隐藏中使用实体DataSource
。 最初,页面加载时RadGrid
加载正常,但是当我尝试根据TextBox
输入值过滤RadGrid
值时,我遇到了问题。我收到此错误
"PART_NUMBER"无法在当前范围或上下文中解决。 确保所有引用的变量都在范围内,这是必需的 将加载架构,并正确引用命名空间。
这是我的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
EntityDataSource1.CommandText = "DetailData";
}
}
protected void FilterBtn_Click(object sender, Telerik.Web.UI.ImageButtonClickEventArgs e)
{
string partNumber = PartNumberTB.Text;
EntityDataSource1.CommandText = @"SELECT value p FROM DetailData as p
where REFERENCE_NUM in (select distinct REFERENCE_NUM from DetailData
where (DetailData.PART_NUMBER like '" + partNumber + "%' or PART_NUMBER = ''))";
}
尝试在查询中使用别名,看看是否有帮助。
SELECT value p FROM DetailData as p
WHERE p.REFERENCE_NUM in (select distinct s.REFERENCE_NUM from DetailData as s
WHERE (p.PART_NUMBER like '" + partNumber + "%' or s.PART_NUMBER = ''))
下面是对带有别名的子查询的引用
编辑:
您可以使用以下代码在 w3schools - SQL 语句上测试查询:
SELECT p.* FROM OrderDetails AS p
WHERE p.OrderID IN (SELECT DISTINCT s.OrderID FROM OrderDetails AS s
WHERE (p.OrderDetailID LIKE '2%' OR s.OrderDetailID = 20))