Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-02 15:05:06 - Peter Sandberg, i forum c# (c-sharp), Tråden har 17 Kommentarer och lästs av 2302 personer

Hej!
Har kod enligt nedan. Fungerar bra tills jag läger till parameter för fältet Datum.
När jag gör det så blir det fel vid 'ExecuteNonQuery()' . Felmeddelandet blir:
'Typblandningsfel i villkorsuttryck.' Försöker att lägga till posten i en Access 2.5
där datumfältet ser ut som följande: 'yyyy-mm-dd'. Fälttypen var värdet 8 och
längden 8.

Har provat att byta OleDbType.DBDate till andra värden men ej lyckats.

Skulle vara tacksam om någon kunde ge något tips vad det kan vara.
MVH
Peter

-------------------------------------------------------------------------------------------


insertCmd = "Insert Into [" + _Table + "] (Datum,Kod) values (?,?)";
mCommand = new OleDbCommand(insertCmd, Con);

mCommand.Parameters.Add(new OleDbParameter("Kod",OleDbType.Char,20,"Kod"));

mCommand.Parameters.Add(new OleDbParameter("Datum",OleDbType.DBDate ));//,8,"Datum"));
mCommand.Parameters["Datum"].IsNullable = true;
mCommand.Parameters["Datum"].Value = DBNull.Value;

if (_Kod == "") mCommand.Parameters["Kod"].Value = DBNull.Value;
else mCommand.Parameters["Kod"].Value = _Kod;

mCommand.Parameters["Datum"].Value = DBNull.Value;

Con.Open();

int RowsAffected = mCommand.ExecuteNonQuery();

Con.Close();


Svara

Sv: Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-02 20:13:09 - Göran Andersson

> där datumfältet ser ut som följande: 'yyyy-mm-dd'

Sparar du datumet som text? Då ska du ju inte använda datum som typ på parametern. Det kommer ju inte att ge en sträng i frågan, utan ett datum.

Bäst är förstås att lagra datum som datum, inte som text.


Svara

Sv:Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-02 22:06:36 - Peter Sandberg

Hej!
Nej, datumet sparas i datumformat.


Svara

Sv: Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-02 22:57:20 - Göran Andersson

Får fältet vara null?


Svara

Sv:Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-03 07:20:28 - Peter Sandberg

Fältet får vara null


Svara

Sv: Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-04 12:10:50 - Håkan Borneland

Hej!

Inte alls mitt område, men jag försöker... :-)
I INSERT anger du att du ska lägga in först Datum sen Kod (se nedan).
<b>"Insert Into [" + _Table + "] (Datum,Kod) values (?,?)"</b>
Sedan kör du Add på Parametrerna, men där lägger du till Kod först och sen Datum (se nedan).
<b>mCommand.Parameters.Add(new OleDbParameter("Kod",OleDbType.Char,20,"Kod"));
mCommand.Parameters.Add(new OleDbParameter("Datum",OleDbType.DBDate ));//,8,"Datum"));</b>
Kan detta spela roll??

//Håkan


Svara

Sv:Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-04 16:42:01 - Göran Andersson

Naturligtvis spelar det roll. :)

Jag sitter med SQL Server och använder namngivna parametrar, så jag tänkte inte på det ens. :P


Svara

Sv: Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-04 17:05:12 - Håkan Borneland

OK!

Hoppas det löser hans problem.
Sitter själv med VC++, OLE DB och MS SQL SERVER.
Vissa delar av koden ovan påminner/liknar det jag håller på med.
Man utvecklar en magkänsla för saker och ting, även om man inte är kan språket/syntaxen.

//Håkan


Svara

Sv:Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-04 17:20:54 - Göran Andersson

Ibland kan det till och med vara en fördel att inte ha specifik kunskap om språket eller tekniken. Då kan man se saker som man annars lätt tar för givet. :)


Svara

Sv: Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-04 18:06:14 - Peter Sandberg

TACK !
Ändrade på ordningen och då fungera det!
I min jakt på att lösa problemet så försökte jag hitta fältets typ
och längd genom att öppna tabellen i ett DataSet och därefter
loop igenom samtliga Columner och skriva inställningarna.
I snurran skrev jag bland annat följande:

Debug.Write("DataType = " + ds.Tables[0].Columns[c].DataType.ToString() + "\n");

Men hur gör man för att skriva ut fältets längd. Inte för att det
längre har någon praktisk betydelse men skulle ändå vilja veta.
MVH
Peter


Svara

Sv:Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-04 20:16:01 - Göran Andersson

Ett fält har ingen längd, dock maxlängd: MaxLength.


Svara

Sv:Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-04 23:31:05 - Håkan Borneland

Hej!

Kul att det ordnade sig.

//Håkan


Svara

Sv: Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-05 12:39:42 - Peter Sandberg

Vist men ....
När jag lägger till tiden i kolumnen Tid (som är i datumformat) så sparas dagens
datum och inte tiden. Vad gör jag för fel? Har provat att låta _Tid både vara ett
DateTime objekt och en sträng. Utdrag från koden (bara lösa delar):


public string Tid
{
get
{
return _Tid;
}
set
{
DateTime dt = new DateTime();
dt = DateTime.Parse(value);

_Tid = dt.TimeOfDay.ToString();
}

**************************************************

mCommand.Parameters.Add(new OleDbParameter("Tid",OleDbType.DBDate));
mCommand.Parameters["Tid"].IsNullable = true;
mCommand.Parameters["Tid"].Value = DBNull.Value;

//VISAR KORREKT VÄRDE (TID)
Debug.Write("Tid = " + _Tid.ToString()+"\n");

if (_Tid == "") mCommand.Parameters["Tid"].Value = DBNull.Value;
else mCommand.Parameters["Tid"].Value = _Tid;//.TimeOfDay;

Con.Open();
RowsAffected = mCommand.ExecuteNonQuery();
Con.Close();



mvh
Peter


Svara

Sv:Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-05 22:25:28 - Håkan Borneland

Hej!

Utifrån dokumentationen (MSDN), så tror jag att du ska deklarera den som "OleDbType.Date".
Då kommer tiden också med.
Förresten vilken databas jobbar du emot?

//Håkan


Svara

Sv: Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-05 23:13:34 - Peter Sandberg

Kör mot en Access 2.5 (kan inte byta som huvudapplikationen är skriven i vb3)
Hur vet man vilken databastyp (ex. OleDbType.Date) som man skall använda?
mvh
Peter


Svara

Sv:Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-05 23:27:28 - Håkan Borneland

*Nyfiken* Testade du att ändra typen, och i så fall hur gick det?
Syftet som den ska användas till.
DBDate visar yyyymmdd, och du vill ha tiden.
Alltså verkar den inte göra "jobbet" i det här fallet.

//Håkan


Svara

Sv: Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-06 11:16:31 - Peter Sandberg

Hej!
Har testat med 'Date' men tiden spars inte, utan dagens datum
utan att jag angder det (default för modar jag).

Har nu löst det genom att använda DBTime och omvandla tidssträngen
till en TimeSpan.

mCommand.Parameters["Tid"].Value = _TimeSpan;

Är inte helt nöjd som jag inte tycker att jag har helt koll på när man
skall använda en viss OleDbType. Visst man kan prova sig fram men
som jag inte fick några fel vid det andra typerna tycker jag ändå
att det finns mjöligheter till framtida fel när man skall spara vissa värden
i olka typer av fält.

Tack för all hjälp!

MVH
Peter


Svara

Sv:Typblandningsfel i villkorsuttryck! OleDbType.DBDate

Postades av 2005-03-06 12:23:42 - Håkan Borneland

Hej!

Bra att det löste sig till slut.
Gôtt att du fixade det själv.
Nu vet du lite mer än tidigare. :-)

//Håkan



Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 165
27 952
271 704
902
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies