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


Problem när jag bytte till SqlDataAdapter

Postades av 2003-05-20 19:32:40 - Benni Svensson, i forum c# (c-sharp), Tråden har 8 Kommentarer och lästs av 789 personer

Jag har bytt ifrån OleDbDataAdapter till SqlDataAdapter på mångas inrådan. Enligt de flesta så skulle det inte vara så stora problem.
Men, koder som har fungerat smärtfritt krachar hela tiden nu...
Här ett ex:
<code>

try
{
string kolumn = treeView1.SelectedNode.Text;
string SQL = "Select Firma,Namn,Box,Adress,PostOrt,Tel,Mobil,Fax,URL,Epost,Anteck,EjLjud,Info,SkickCd FROM t_Kunder WHERE Firma = '" + kolumn + "'";

da = new SqlDataAdapter(SQL, con);
ds = new DataSet("frånKund");

con.Open();
da.Fill(ds, "frånKund");
con.Close();
}
catch(Exception fel)
{
MessageBox.Show(fel.Message,"Databasfel i UppdateraInfo");
}
</code>
Jag får error:
General network error Check your network docomentation.
Jag drar igång så här:
<code>
using System.Data.SqlClient;
using System.Data.SqlTypes;
private SqlDataAdapter da;
private SqlDataAdapter da1;
private SqlDataAdapter da2;
private DataSet ds;
private DataSet ds1;
private DataSet ds2;
private SqlConnection con;

string CONstring = "Data Source=; Initial Catalog=Melodi;Trusted_Connection=yes";
con = new SqlConnection(CONstring);
</code>
Någon som har någon ide?


Svara

Sv: Problem när jag bytte till SqlDataAdapter

Postades av 2003-05-21 09:29:59 - Mattias Lindberg

Pröva att stoppa in ett maskinnamn i data source, du kan även använda "localhost" eller "."

<code>
string CONstring = "Data Source=localhost; Initial Catalog=Melodi;Trusted_Connection=yes";
string CONstring = "Data Source=.; Initial Catalog=Melodi;Trusted_Connection=yes";
</code>


/Mattias


Svara

Sv: Problem när jag bytte till SqlDataAdapter

Postades av 2003-05-21 14:05:44 - Benni Svensson

Hej Mattias, tyvärr så hjälpte inte det, men jag tror att jag har isolerat problemet nu.
Jag har en treeview med namn ne combobox med kategorier och ett antal textboxar för adress tel osv för de namn som klickas på i treeview,.
När jag start så drar jag igång:
<code>
FyllPåKategori(); //enbart denna
//sen så har jag skrivet i:
private void treeView1_AfterSelect(object sender,
System.Windows.Forms.TreeViewEventArgs e)
{
UppdateraInfo();
}
//dvs nar app. startar så skall den första posten vara selectad, eller när man klicka
//så skall motsvarande post visas i textrutorna. Sen i UppdateraInfo:

string lkolumn = treeView1.SelectedNode.Text.ToString();
string fSQL = "Select Firma,Namn,Box,Adress,PostOrt,Tel,Mobil,Fax,URL,Epost,Anteck,EjLjud,Info,SkickCd FROM t_Kunder WHERE Firma = '" + lkolumn + "'";

da = new SqlDataAdapter(fSQL, con);
ds = new DataSet("alltfrånKunder");
try
{
con.Open();
da.Fill(ds,"alltfrånKunder");
con.Close();
}
catch(Exception fel)
{
MessageBox.Show(fel.Message,"Databasfel i UppdateraInfo");
}
</code>
Det är när jag har det så här som jag får ett error, men om jag kommentera bort
'WHERE Firma = '" + lkolumn + "'";' då får jag inget error.
Men om jag kolla vi en Messagebox:
<code>
MessageBox.Show(lkolumn.ToString());
</code>
då fungerar det!!!

Hur skall jag lösa detta?


Svara

Sv: Problem när jag bytte till SqlDataAdapter

Postades av 2003-05-21 14:10:45 - Magnus Gladh

Det beror säkert på att din lKolumn inte innehåller något värde första gången eftersom inget är valt i listan.

Gör en check på det och välj sedan att kör/inte köra din SQL sats.

- m


Svara

Sv: Problem när jag bytte till SqlDataAdapter

Postades av 2003-05-21 14:56:42 - Benni Svensson

Ajajaj, det visar sig var lite mera lustigt an vad jag trodde.
Jo du hade rätt Magnus, och det mästa fungera nu, men om jag klicka på ETT namn(det var det som låg först tidigare) då bryter han ihop.
Så här ser error ut:
<code>
An unhandled exception of type 'System.NullReferenceException' occurred in Saw.exe
Additional information: Object reference not set to an instance of an object.
</code>
Den pekar också på den här koden:
<code>
DataRow dr=ds.Tables["alltfrånKunder"].Rows[0];
checkBox1.Checked=(bool)dr["EjLjud"];
checkBox2.Checked=(bool)dr["Info"];
checkBox3.Checked=(bool)dr["SkickCd"];
</code>
Så här ser databasen(tabellen) ut:

Kundid int 4
KundKategori int 4
Firma nvarchar 30
Namn " " 25
Box " " 14
Adress " " 25
PostOrt " " 25
Tel " " 15
Mobil " " 15
Fax " " 15
URL " " 50
Epost " " 50
EjLjud bit 1
Info bit 1
SkickCD bit 1
Anteck nvarchar 255

Jag känner mig väldigt osäker på datartyperna, tycker ni att jag har gjort rätt?
Någonstans så finns det någonting som gör att den krachar.



Svara

Sv: Problem när jag bytte till SqlDataAdapter

Postades av 2003-05-21 23:45:55 - Mattias Lindberg

Om du får NullReferenceException så tror jag att det beror på att du inte har några rader i din allfrånkunder DataTable. Testa något liknande:

<code>
if( DataRow dr=ds.Tables["alltfrånKunder"].Rows.Count == 0 )
{
MessageBox.Show("Ingen data funnen i databasen.");
throw new ApplicationException("...");
}

DataRow dr=ds.Tables["alltfrånKunder"].Rows[0];
checkBox1.Checked=(bool)dr["EjLjud"];
checkBox2.Checked=(bool)dr["Info"];
checkBox3.Checked=(bool)dr["SkickCd"];
</code>

Orsaken till att du inte har några rader är svår att identifiera. Jag skulle debugga och kopiera den SQL sats du genererar och sedan köra den i Query Analyzer (om du kör SQL Server) för att se vilka rader som returneras. I det fall som går fel så kommer du antagligen inte få något resultat vid frågan i QA.

Hoppas detta hjälper!

/Mattias


Svara

Sv: Problem när jag bytte till SqlDataAdapter

Postades av 2003-05-22 10:26:42 - Benni Svensson

Hej Matias. Jag kunde inte köra din test, det var något fel i den, som jag inte kom till rätta med.
Jag har kört SQL:en i QA helt utan problem, och jag fick fram poster.
Som jag nämde så när jag tog bort en speciell post, så började allting att fungera igen, mycket märkvärdigt.
För att göra det ännu mera märkvärdigt.
Boven i dramat är tydligen fältet FIRMA.
Jag trodde att fältet FIRMA var för litet, så jag ändrade till:
nvachar 50

I den post där felet kommer står det 'Air Chrysalis Scandinavia'.
Då får jag error:
"General Network Error Check your network documentation."
Nästa error:
"Object referense not set to an instance of an object."
Och så bryter den ihop.
Men om jag ändrar i fältet till:
'Air Chrys. Scandinavia' då är det inga problem.
Ändrar jag till 'Chrysalis', då är felen tillbaka.
Går det TROLL i datorn???


Svara

Sv: Problem när jag bytte till SqlDataAdapter

Postades av 2003-05-22 22:33:07 - Mattias Lindberg

Jag får inget grepp på ditt problem. I ditt första inlägg var det "General network error Check your network docomentation.", men sedan försvann det och kom sedan tillbaks igen.

Jag får känslan av att du inte hanterar dina exception rätt, om du får ett fel i form av en exception när du gör Open/Fill/Close (som du har i ditt try-block) och sedan tar hand om felet genom att visa en dialog så kan du ju inte använda det DataSet som har skapats. Ett fel uppstod ju vid dess skapande! Eftersom du skriver att "nästa fel" blir object reference... så verkar du ju använda det icke-giltiga DataSet trots att det uppstod fel vid skapandet.

Vad jag menade med förra inlägget var att skriva som nedan, copy&paste fel...
<code>
if( ds.Tables["alltfrånKunder"].Rows.Count == 0 )
{
MessageBox.Show("Ingen data funnen i databasen.");
throw new ApplicationException("...");
}
</code>

Om det är som jag tror så funkar nog inte heller denna kod eftersom det nog inte finns någon DataTable som heter alltfrånkunder i ds, eftersom dess skapande misslyckades...

/Mattias


Svara

Sv: Problem när jag bytte till SqlDataAdapter

Postades av 2003-05-23 10:05:05 - Benni Svensson

Hej Magnus.
Det tycks bli en långtradare det här.
Så här gjorde jag, obs namnbyte..
<code>
string lkolumn = treeView1.SelectedNode.Text.ToString();
string fSQL = "Select
Firma,Namn,Box,Adress,PostOrt,Tel,Mobil,Fax,URL,Epost,Anteck,EjLjud,Info,SkickCd
FROM t_Kunder WHERE Firma = '" + lkolumn + "'";
da = new SqlDataAdapter(fSQL, con);
ds = new DataSet("frånKunder");


if( ds.Tables["frånKunder"].Rows.Count == 0 )
{
MessageBox.Show("Ingen data funnen i databasen.");
throw new ApplicationException("...");
}

</code>
Med andra ord, så fort som ds"frånKunder" är skapat, så försöker jag att kolla enligt din kod.
Då krachar programmet, den vill inte höra talas om koden, mycket märkvärdigt.
Fortfarande så är det just när post en 'Air Crys...' kommer upp som det djäklas alla andra poster hanteras kanonbra.
Som jag skrev innan så tog jag också bort den posten, och la in den på nytt, samma resultat.
I övrigt så fungerar uppdate/nytt/delete kanon.
En sak som jag reagera på är, att om jag tar posten 'Air Crys..' så kan jag se att ds"frånKunder' ändras, men den vägrar att uppdatera i databasen.


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 154
27 952
271 704
666
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