There was an error parsing the query.

Status
Niet open voor verdere reacties.

SvanBueren

Nieuwe gebruiker
Lid geworden
30 jun 2011
Berichten
2
Goede morgen meer getalenteerde programmeurs dan ik!!

Ik weet niet zeker of ik mijn vraag hier moet plaatsen of onder .NET (C#).

Ik probeer een SQL query uit te voeren met C#:
Code:
public static SqlCeConnection Create()
        {
            string cs = Properties.Settings.Default.VendorConnectionString.ToString();
            SqlCeConnection Conn = new SqlCeConnection(cs);
            Conn.Open();
            return Conn;
        }

public static void Execute(string SQL)
        {
            using (SqlCeConnection Conn = db.Create())
            {
                SqlCeCommand cmd = new SqlCeCommand(SQL, Conn);
                cmd.ExecuteNonQuery();
                cmd.Connection.Close();
            }
        }

De SQL command ziet er als volgt uit:
Code:
INSERT INTO products 
(product, price_sell, amount, last_purchase, in_stock) 
VALUES 
('Between', '4', 0, 28-8-2012 0:00:00, 'True')

Met:
product = text
price_sell = decimal(18,2)
amount = int
last_purchase = date (waar ik denk dat de fout zit)
in_stock = bit

Ziet iemand hier een fout? Ik kom er niet meer uit :confused:

Alvast bedankt!!

[EDIT]
Ik heb de fout in de SQL gevonden, de datum was ik vergeten tussen ' ' te zetten.

Nu heb ik er nog een probleem erbij gekregen, ik krijg de melding: "Data conversion failed. [ OLE DB status value (if known = 0 ]".
Ik weet dat dit eigenlijk een .NET topic moet zijn maar als iemand een antwoord weet, graag :)



Heb het al! het probleem lag nog vóór dit stukje code. Dit stukje werkt prima!
 
Laatst bewerkt:
Mooi dat je je eigen vraag hebt weten op te lossen :thumb:

Verwacht last_purchase geen volledige datum? Dus yyyy-mm-dd hh:mm:ss?

Zou je daarnaast aan kunnen geven wat de melding veroorzaakte en wat de oplossing daarvan is?
 
Laatst bewerkt:
Uiteraard!!

last_purchase heeft een format van MM-dd-yyyy HH:mm:ss.

Het probleem lag bij het converteren van 'double' naar 'string'. Price_sell was een double, dat houdt in: wanneer ik een decimaal probeerde in te voegen, werd er een komma (,) gebruikt. (bijvoorbeeld 4,5)
maar om een decimaal te gebruiken in een sql command moet je een punt (.) gebruiken. (bijvoorbeeld 4.5)

Dat was het hele eieren eten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan