2015-12-02 44 views
1

環境:ORA-01008:未綁定所有的變量(表適配器與參數化查詢)

  • 的Visual Studio 2010(.NET Framework 4中)
  • ASP.NET Web應用程序
  • Oracle數據庫
  • 使用System.Data.OracleClient的

    我有一個web表單,其中用戶可以輸入任何或沒有數據轉換成對應於每個參數在我query.if使用文本框r沒有輸入數據,文本框會得到「0」的值。

這裏是我的查詢:

SELECT "CardNo" , "Name" 
FROM CSC.CommercialCardList 
WHERE("CardNo"=:CardNo or :CardNo=0) and ("Name"=:Name or :Name=0) 

當我右擊從MYDATABASE.xsd面板tableadaptor查詢,然後選擇「預覽數據」,並填寫參數值「0」我得到的錯誤(「ORA-01008:並非所有變量綁定」)

任何人都可以幫助我嗎?

- 編輯 -

CardNo = (CardNoTextBox.Text != String.Empty) ? CardNoTextBox.Text : "0"; 
Name = (NameTextBox.Text != String.Empty) ? NameTextBox.Text : "0"; 
CommercialCardList.Fill(dt, CardNo,Name); 
ds.Tables.Add(dt); 
+0

你能證明你的代碼?不是SQL,而是你的VB/C#? – Hambone

+0

CardNo =(CardNoTextBox.Text!= String.Empty)? CardNoTextBox.Text:「0」; Name =(NameTextBox.Text!= String.Empty)? NameTextBox.Text:「0」; CommercialCardList.Fill(dt,CardNo,Name); ds.Tables.Add(dt); –

+0

您還可以將代碼添加到實際與Oracle服務器交談的地方嗎?它應該有一個'OracleCommand'對象... – Hambone

回答

0

您需要綁定4個變量作爲代碼的一部分。

2 「CardNo」=:CardNo或:CardNo = 0

2 「名稱」=:姓名或:名稱= 0

+0

我用CardNo =(CardNoTextBox.Text!= String.Empty)? CardNoTextBox.Text:「0」;你的意思是另一個:CardNo ?? –

+0

這可能只是令人滿意的「卡號」=:卡號否:卡號= 0 –

+0

我不認爲這是正確的。如果你在SQL中聲明瞭兩次':CardNo',它仍然是一個綁定變量。我認爲他只需要兩個綁定變量。 – Hambone

相關問題