---
title: "Från OleDb till SqlClient i C#"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/77426-från-oledb-till-sqlclient-i-c"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "saw"
published: "2003-05-19T16:08:34.000Z"
updated: "2003-05-20T11:55:12.000Z"
replies: 10
views: 306
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/77426-från-oledb-till-sqlclient-i-c"
---

# Från OleDb till SqlClient i C#

## #1 — saw, 2003-05-19T16:08Z

På rekommendation ifrån er så har jag byggt om min app och använder mig nu av

```
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;

private SqlDataAdapter da;
private SqlDataAdapter da1;
private DataSet ds;
private DataSet ds1;
private SqlConnection con;

string CONstring = "Data Source=; Initial Catalog=Melodi;Trusted_Connection=yes";
con = new SqlConnection(CONstring);
```

Detta fungera fantastiskt bra, men jag har ett bekymmer, hur
 skriver jag om nedanstående kod så att det passar SqlClient?

```
OleDbCommand mDeleteCommand=new OleDbCommand(sqlDelete,con);				
OleDbCommand mInsertCommand=new OleDbCommand(sqlInsert,con);				
OleDbCommand mUpdateCommand=new OleDbCommand(sqlUppdate,con); 
				
con.Open(); 				
OleDbDataAdapter mAdapter=new OleDbDataAdapter(); //här läggs classen				
mAdapter.DeleteCommand = mDeleteCommand; 		
mAdapter.InsertCommand = mInsertCommand; 		
mAdapter.UpdateCommand = mUpdateCommand; 
				
mAdapter.Update(ds,"frånCD_Album");// denna skall vara med för att uppdateringen skall lyckas			
con.Close();
```

Tacksam  för hjälp  :stud

Permalänk: https://www.webforum.nu/p/77426

## #2 — Nickemannen, 2003-05-19T16:11Z

OleDbCommand = SqlCommand
OleDbAdapter = SqlDataAdapter

Permalänk: https://www.webforum.nu/p/1056023

## #3 — saw, 2003-05-19T16:18Z

Så jag kan behålla min gammlakod, och bara byta ut mot vad du föreslog?

Permalänk: https://www.webforum.nu/p/1056030

## #4 — renholm, 2003-05-19T16:36Z

Testa :)

I princip bör det fungera, kan vara vissa små funktioner som skilljer olika dataproviders åt.

Permalänk: https://www.webforum.nu/p/1056053

## #5 — saw, 2003-05-19T18:58Z

OK, jag skall bara testa och avakta resultaten då?

Permalänk: https://www.webforum.nu/p/1056204

## #6 — renholm, 2003-05-19T19:32Z

Inte avakta :birp, du skall testa om det fungerar med att bara byta ut OleDbCommand mot SqlCommand. Vilket med största sannolikhet skall fungera.

Permalänk: https://www.webforum.nu/p/1056245

## #7 — saw, 2003-05-19T20:37Z

Tack, jag har stött på lite problem, men är inte säker på vad det är, jag återkommer om jag inte kan lösa det.

Permalänk: https://www.webforum.nu/p/1056330

## #8 — saw, 2003-05-19T22:42Z

JAg får bl a detta fel:

```
System.FormatException: Input string was not in a correct format.
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at System.Int32.Parse(String s, NumberStyles style, IFormatProvider provider)
   at System.Convert.ToInt32(String value, IFormatProvider provider)
   at System.String.System.IConvertible.ToInt32(IFormatProvider provider)
   at System.Convert.ToInt32(Object value)
   at System.Data.Common.Int32Storage.Set(Int32 record, Object value)
   at System.Data.DataColumn.set_Item(Int32 record, Object value)

Couldn't store <Detta är våran första CD, som blev klar 2001-02-
30. Denna CD publicerades på MP3.COM den 2001-06-27> in 
CD_ID Column.  Expected type is Int32.
```

Den kod som jag kör fungerade 100% tidigare, nu skiter det sig...

Permalänk: https://www.webforum.nu/p/1056430

## #9 — Gladh, 2003-05-20T07:06Z

Du måste ha gjort någon förändring innan, eftersom du försöker spara ner en textmassa till en kolumn som endast kan ta emot en INT. Speciellt med tanke på att kolumnen heter CD_ID vilket får en att tänka på att det borde vara ett ID-fält och inget fält där man skriver beskrivning/noteringar

Det har inget med OleDBSommnad / SQLCommand att göra. Mitt tips blir att stega igenom din kod i debugläge och se vart i koden som felet uppstår, sedan om du inte kan lösa problemet själv så skickar du med den koden där det blir fel, och eventuell kod som hör ihop med problemet.

\- M

Permalänk: https://www.webforum.nu/p/1056578

## #10 — saw, 2003-05-20T11:06Z

Jag har nu kommit tillrätta med NÄSTAN alla problemen. Ett av de värsta/viktigaste var att jag blandade ihop ds1/da1 med ds/da.

Det som nu återstår är ett lustigt fel. I formuläret så finns textrutan textBoxCD_Marking. 
I SQL Servern så heter fältet CD_Marking datatypen nvachar(30).
\[jag är osöker på om jag har rätt datatyp\].

Nu fungerar det så, att om textBoxCD_Marking är tom, då får jag inga problem, men om det står någonting så får jag ett error:

```
General network error.
Check your networkdocumentation
```

Om det INTE står någonting i textBoxCD_Marking  så fungerar det...
Så här ser min SQL ut:

```
string sqlUppdate="Update t_Album " + 
" Set Album    = '" + textBoxTitel.Text      + "'," + 
     " Bild         = '" + textBoxBild.Text       + "'," + 
" CD_Marking   = '" + textBoxCD_Marking.Text + "'," + 
" PM           = '" + textBoxPM.Text         + "'" + 
" Where Album  = '" + listBoxAlbum.Text      + "'";
```

Någon som kan se något fel?

Permalänk: https://www.webforum.nu/p/1056761

## #11 — saw, 2003-05-20T11:55Z

Detta blir underliggare och underliggare.
Jag testade att enbart skriva in:
2003_03
Inga problem
Jag skrev in:
mmmmmmmmmmm
Heller inga problem(jag har satt längden till 11)
Men om jag skriver:
saw_2000_01
DÅ KOMMER PROBLEMEN. Så fort som jag skriver saw.
Nu har jag löst det provisoriskt, genom att lägga till en label, där det står "saw\_", men efftersom CD_Marking är viktig så hadde jag velat ha in hela:'saw_2000_01' (jag har bl a cd registrerade i Statens Bild & Ljudarkiv, därför är märkning väldigt viktigt).
Vad kan detta bero på?

Permalänk: https://www.webforum.nu/p/1056784

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/77426-från-oledb-till-sqlclient-i-c
