C# 选择事务,仅显示一行,但数据库中有多行
在此空白处,我选择了交易。示例在PONo为17的数据库中有3行,我只想在列表视图中显示一行。可能吗C# 选择事务,仅显示一行,但数据库中有多行,c#,asp.net,C#,Asp.net,在此空白处,我选择了交易。示例在PONo为17的数据库中有3行,我只想在列表视图中显示一行。可能吗 void GetSupply() { con.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = "SELECT Supplier.SupplierName, PurchaseOrder.PONo, PurchaseOrder.PODate, " +
void GetSupply()
{
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT Supplier.SupplierName, PurchaseOrder.PONo, PurchaseOrder.PODate, " +
"PurchaseOrder.PODateReceived, PurchaseOrder.PODeliveryDate, PurchaseOrder.POPaymentMethod, " +
"PurchaseOrder.POReceiptNo, PurchaseOrderDetails.POAmount, PurchaseOrder.POPaymentDate, " +
"PurchaseOrder.POStatus FROM PurchaseOrder INNER JOIN PurchaseOrderDetails " +
"ON PurchaseOrder.PONo = PurchaseOrderDetails.PONo INNER JOIN Supplier ON " +
"PurchaseOrder.SupplierNo = Supplier.SupplierID " +
"ORDER BY PurchaseOrder.PODate DESC";
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "PurchaseOrderDetails");
lvPO.DataSource = ds;
lvPO.DataBind();
con.Close();
}
现在看起来是这样的
我想这样表现出来
您可以尝试使用
选择DISTINCT
ie
cmd.CommandText = "SELECT DISTINCT Supplier.SupplierName, PurchaseOrder.PONo, PurchaseOrder.PODate, " +
"PurchaseOrder.PODateReceived, PurchaseOrder.PODeliveryDate, " +
"FROM PurchaseOrder INNER JOIN PurchaseOrderDetails " +
"ON PurchaseOrder.PONo = PurchaseOrderDetails.PONo INNER JOIN Supplier ON " +
"PurchaseOrder.SupplierNo = Supplier.SupplierID " +
"ORDER BY PurchaseOrder.PODate DESC";
或者尝试使用分组方式
cmd.CommandText = "SELECT Supplier.SupplierName, PurchaseOrder.PONo, PurchaseOrder.PODate, " +
"PurchaseOrder.PODateReceived, PurchaseOrder.PODeliveryDate, " +
"FROM PurchaseOrder INNER JOIN PurchaseOrderDetails " +
"ON PurchaseOrder.PONo = PurchaseOrderDetails.PONo INNER JOIN Supplier ON " +
"PurchaseOrder.SupplierNo = Supplier.SupplierID " +
"GROUP BY PurchaseOrder.PONo,Supplier.SupplierName, PurchaseOrder.PODateReceived, PurchaseOrder.PODeliveryDate ORDER BY PurchaseOrder.PODate DESC";
您可以尝试使用
select DISTINCT
ie
cmd.CommandText = "SELECT DISTINCT Supplier.SupplierName, PurchaseOrder.PONo, PurchaseOrder.PODate, " +
"PurchaseOrder.PODateReceived, PurchaseOrder.PODeliveryDate, " +
"FROM PurchaseOrder INNER JOIN PurchaseOrderDetails " +
"ON PurchaseOrder.PONo = PurchaseOrderDetails.PONo INNER JOIN Supplier ON " +
"PurchaseOrder.SupplierNo = Supplier.SupplierID " +
"ORDER BY PurchaseOrder.PODate DESC";
或者尝试使用分组方式
cmd.CommandText = "SELECT Supplier.SupplierName, PurchaseOrder.PONo, PurchaseOrder.PODate, " +
"PurchaseOrder.PODateReceived, PurchaseOrder.PODeliveryDate, " +
"FROM PurchaseOrder INNER JOIN PurchaseOrderDetails " +
"ON PurchaseOrder.PONo = PurchaseOrderDetails.PONo INNER JOIN Supplier ON " +
"PurchaseOrder.SupplierNo = Supplier.SupplierID " +
"GROUP BY PurchaseOrder.PONo,Supplier.SupplierName, PurchaseOrder.PODateReceived, PurchaseOrder.PODeliveryDate ORDER BY PurchaseOrder.PODate DESC";
只需在查询中使用distinct
选择distinct….
另一种方法选择Top 1I我不能使用Top 1,因为存在的数量比需要显示的数量少。只需在查询中使用distinct选择distinct….
另一种方法选择Top 1I不能使用Top 1,因为存在的问题比需要显示的问题要多,所以我如何做出不同的声明?@gamered123:-我已经在我的答案中添加了查询。你可以用它。我已经把它放好了,但它仍然占3rows@gamered123:-尝试使用SELECT TOP 1 Supplier.SupplierName,PurchaseOrder.PONo,….
TOP 1无法使用,因为我还需要显示不同的交易记录。我只是想说明我是否做了一个不同的陈述?@gamered123:-我已经在我的答案中添加了这个查询。你可以用它。我已经把它放好了,但它仍然占3rows@gamered123:-尝试使用SELECT TOP 1 Supplier.SupplierName,PurchaseOrder.PONo,….
TOP 1无法使用,因为我还需要显示不同的交易记录。我只是想消除重复