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


Databaser igen...en enkel fråga:

Postades av 2007-05-15 16:45:41 - Anna Jonsson, i forum c# (c-sharp), Tråden har 6 Kommentarer och lästs av 783 personer

Hej,

Jag har en SQL sats och söker efter ett visst värde i databasen. Tex:

string SQL = "SELECT MyColumn FROM MyTable WHERE MyTable.MyColumn = '15' ";
System.Data.DataSet dbSet = db.ExecuteSelectSQL(SQL);

if (dbSet.Tables[0].Rows.Count > 0) //Table was found
{
if (dbSet.Tables[0].Rows.Count > 0) //A row was found
{
MyRow= dbSet.Tables[0].Rows[0].ItemArray[0].ToString();
}
}
else
{

}

Finns det inget annat sätt, tex .hasRow() (eller liknande som DataReader har)? Om jag söker efter en sträng i databasen istället kommer jag att få ett fel istället för att gå vidare till else-satsen.

Tidigare hade jag all kod innanför try-catch-finallly, men jag tycker inte att jag får till det så bra. Ska man endast ha db.connect i try och ännu en try-catch när man gör ExecuteSQL?


Thanks!



Svara

Sv: Databaser igen...en enkel fråga:

Postades av 2007-05-15 17:07:03 - Johan Djupmarker

Gissar att du skrivit fel och ska vara såhär?

if (dbSet.Tables.Count > 0) //Table was found

För att kontrollera om det finns några rader kan du göra såhär:
if (dbSet.Tables[0].Rows.Count > 0) //A row was found

Du behöver inte kontrollera Tables.Count, det är alltid 1 tabell även om det inte är några rows (om inte din ExecuteSelectSQL hittar på något annat då).


Det bästa är att validera söksträngen innan frågan körs.

Jag tycker du ska lägga själva databasfrågan i en try också, ifall något oförutsett inträffar (att databasen inte går att nå, är skadad eller liknande).

/Johan


Svara

Sv:Databaser igen...en enkel fråga:

Postades av 2007-05-16 08:33:49 - Anna Jonsson

Ja, du antog rätt!

Jag menade:
string SQL = "SELECT MyColumn FROM MyTable WHERE MyTable.MyColumn = '15' ";
System.Data.DataSet dbSet = db.ExecuteSelectSQL(SQL);

if (dbSet.Tables.Count > 0) //Table was found
{
if (dbSet.Tables[0].Rows.Count > 0) //A row was found
{
MyRow= dbSet.Tables[0].Rows[0].ItemArray[0].ToString();
}
}
else
{
}

Men om jag tex söker efter en sträng istället för 15 som ovan, så kommer man inte till else-satsen, utan programmet avslutas. (Det är ju meningen att jag ska ha en variabel där istället.) Man måste alltså kolla så att det man söker efter innehåller giltliga tecken innan man söker i databasen??


Svara

Sv: Databaser igen...en enkel fråga:

Postades av 2007-05-16 09:26:14 - Johan Djupmarker

Om du söker i numeriska fält är det bästa att kontrollera att sökvärdet verkligen är numeriskt. Sedan finns det andra anledning till att sökningen inte lyckades, t.ex. otillgänglig databas, det fångar du med en try.

/Johan


Svara

Sv:Databaser igen...en enkel fråga:

Postades av 2007-05-16 16:25:34 - Anna Jonsson

OK!!

Då gör jag så här:

Database db=new Database();
try{
        db.connect();

        string SQL = "SELECT MyColumn FROM MyTable WHERE MyTable.MyColumn = '15' "; 
        System.Data.DataSet dbSet = db.ExecuteSelectSQL(SQL); 

         if (dbSet.Tables[0].Rows.Count > 0) //A row was found 
         { 
                 MyRow= dbSet.Tables[0].Rows[0].ItemArray[0].ToString(); 
          } 
          else 
          { 
          }
        dbSet.Dispose();
}
catch(Exception e)
{
       Console.WriteLine("Error " + e);
    
}
finally
{
  db.Close();
}

Ser det ok ut?! 
Fast jag får mycket tydligare felmeddelanden om jag skriver:
  if (db.Exception != null)
  {
         Console.WriteLine("Error " + dbcountry.Exception.Message);
   }
   (Ger: "ogiltligt användarnamn eller lösenord, inloggning inte möjlig.")

Om jag testar:
catch
{
    Console.WriteLine("Error " + dbcountry.Exception.Message);
}


får jag inte så snyggt meddelande heller: "Database is closed" istället för "ogiltligt användarnamn eller lösenord, inloggning inte möjlig."
Fast det är inte så viktigt...det löser sig nog.


Svara

Sv: Databaser igen...en enkel fråga:

Postades av 2007-05-16 18:53:59 - Johan Djupmarker

Tycker det ser bra ut. Jag skulle åtminstone gjort så själv :)

/Johan


Svara

Sv:Databaser igen...en enkel fråga:

Postades av 2007-05-18 10:05:04 - Anna Jonsson

Tack så hemskt mycket för "bollningen" av mina frågor!! :-D


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

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 570 718
27 958
271 751
3 305
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