2015-01-17 123 views
0

我有一張POMain po_no表和一張運輸發票表,然後當我搜索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(); 

      } 

      } 
+0

對不起,先生你現在可以理解嗎? –

+0

ahm是的,我只是想知道我在哪裏代碼條款,如果發票有一個值po_no不會出現在組合框 –

回答

0

您需要使用LEFT OUTER,而不是在這裏加入一個INNER JOIN的

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

有說,使用存儲過程而不是試圖形成內聯查詢會更好。

+0

字符串strQry =「選擇POMain.po_no從POMain左加入運費POMain.po_no =運輸.po_no WHERE Shipping.invoice IS NULL「; –

+0

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; – sudheeshix

+0

在關鍵字'ON'附近的語法不正確我得到這個錯誤 –