TableAdapter带有可选WHERE参数的查询
本文关键字:参数 查询 WHERE TableAdapter | 更新日期: 2023-09-27 18:04:55
我试图创建一个TableAdapter查询与一个可选的WHERE参数。这是我的查询:
SELECT Productos.Categoria, Productos.Subcategoria, Productos.Nombre,
Productos.Marca, Productos.Descripcion, Proveedores.Nombre AS Proveedor, Precios.Precio
FROM Precios, Productos, Proveedores
WHERE Precios.Producto_ID = Productos.ID AND Precios.Proveedor_ID =
Proveedores.ID AND Proveedores.Nombre = ?
我想要" provedores"。Nombre = ?"是可选的,或者if ?= null或无,查询不按 provedores进行过滤。数量
我已经试过了:
(Proveedores.Nombre =@PNombre OR @PNombre = NULL)
但是我得到了一个错误:
生成SELECT语句:
WHERE子句'@'附近出错。
无法解析查询文本
非常感谢你的帮助,
对
安德烈斯编辑:我在做一个windows窗体项目。我正在使用一个数据源-数据集链接到我的访问数据库。因此,要创建FillBy()和GetData(),我使用一个表适配器,当我将数据源插入到我的WindowsForm时自动创建。这是创建的方法,类似于我使用的GetData():
public virtual DB_ProvProd2DataSet.ProductosDataTable GetDataByTodo(string Nombre) {
this.Adapter.SelectCommand = this.CommandCollection[5];
if ((Nombre == null)) {
throw new global::System.ArgumentNullException("Nombre");
}
else {
this.Adapter.SelectCommand.Parameters[0].Value = ((string)(Nombre));
}
DB_ProvProd2DataSet.ProductosDataTable dataTable = new DB_ProvProd2DataSet.ProductosDataTable();
this.Adapter.Fill(dataTable);
return dataTable;
}
这个地方。CommandCollection[5] =查询和this.Adapter.SelectCommand。参数[0]是输入与'?
我希望这对你有帮助!谢谢! !
尝试将其传递给一个局部变量:字符串tmp= @PNombre
(Proveedores。编号==tmp || tmp == null)