组合框 Where 子句

Combo box Where Clause

我有一个 table 的 POMain po_no 和一个 table 的运输发票,然后当我搜索 po_no 时,我将添加一张发票。我想做的是,如果 po_no 已经有发票,po_no 搜索按钮将不会出现

public AddForm()
            {
                InitializeComponent();
    string ID = cb_po_search.SelectedValue.ToString();
                string strPRSconn = ConfigurationManager.ConnectionStrings["POSdb"].ConnectionString;
                SqlConnection sc = new SqlConnection(strPRSconn);
                sc.Open();
                string strQry = "SELECT POMain.po_no FROM POMain LEFT JOIN Shipping ON POMain.po_no = Shipping.po_no WHERE Shipping.invoice IS NULL AND POMain.po_no = '" + ID + "'";
                SqlCommand scmd = new SqlCommand(strQry, sc);
                SqlDataReader dr = scmd.ExecuteReader();

                DataTable dt = new DataTable();
                dt.Columns.Add("po_no", typeof(string));
                dt.Load(dr);

                cb_po_search.ValueMember = "po_no";
                cb_po_search.DisplayMember = "po_no";
                cb_po_search.DataSource = dt;

                sc.Close();

            }

            }

您需要在此处使用 LEFT OUTER 联接而不是 INNER 联接

string strQry ="SELECT POMain.po_no FROM POMain INNER JOIN Shipping ON POMain.po_no = Shipping.po_no WHERE Shipping.invoice IS NULL";

并且你还需要在最后的WHERE子句中添加另一个条件:

AND POMain.po_no = " + ID

话虽如此,使用存储过程而不是尝试形成内联查询会更好。