2015-12-02 1 views
1

Environnement:ORA-01008: toutes les variables liées (adaptateur de table avec requête paramétrées)

  • Visual Studio 2010 (FrameWork .NET 4)
  • Application Web ASP.NET
  • Oracle Database
  • utilisant System.Data.OracleClient

    J'ai un formulaire Web où un utilisateur peut entrer tout ou pas de données dans des zones de texte correspondant à chaque paramètre dans mon utilisation de query.if r entré aucune donnée, la boîte de texte aura la valeur "0".

Voici ma requête:

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

quand je clique droit sur la requête du tableadaptor dans le panneau MYDATABASE.xsd, et sélectionnez « Aperçu des données » et remplir les valeurs des paramètres avec « 0 » j'obtiens l'erreur ("ORA-01008: Toutes les variables non liées")

Quelqu'un peut-il m'aider?

--EDIT--

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

Pouvez-vous montrer votre code? Pas le SQL, mais votre 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

Pouvez-vous également ajouter le code où vous parlez réellement au serveur Oracle? Il devrait avoir un objet 'OracleCommand' ... – Hambone

Répondre

0

Vous devez lier 4 variables dans le cadre de votre code.

2 pour "CARDNO" =: CARDNO ou: CARDNO = 0

2 pour "Nom" =: Nom ou: Name = 0

+0

J'ai utilisé CardNo = (CardNoTextBox.Text! = String.Empty)? CardNoTextBox.Text: "0"; tu veux dire un autre pour: CardNo ?? –

+0

Cela pourrait être satisfaisant seulement "CardNo" =: CardNo pas: CardNo = 0 –

+0

Je ne pense pas que ce soit juste. Si vous avez ': CardNo' déclaré deux fois dans le SQL, il s'agit toujours d'une seule variable de liaison. Je pense qu'il n'a besoin que de deux variables de liaison. – Hambone