---
title: "IDbCommand-parametrar?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/101412-idbcommand-parametrar"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Josef"
published: "2004-04-13T19:09:01.000Z"
updated: "2004-04-14T19:49:17.000Z"
replies: 7
views: 334
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/101412-idbcommand-parametrar"
---

# IDbCommand-parametrar?

## #1 — Josef, 2004-04-13T19:09Z

Om jag skapar ett IDbCommand-objekt. Hur ska jag då bära mig åt för att kunna lägga till parametrar till det objektet? Får bara felet: 

```
No overload for method 'Add' takes '2' arguments
```

om man gör så här: 

```
objCmd.Parameters.Add("@url", tbUrl.Text.ToString());
```

IDbCommand kan tydligen bara ta en in-parameter (IList). Men hur ska jag då göra? :q

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

## #2 — drunken_master, 2004-04-13T20:08Z

Du ska lägga till ett objekt som representerar en parameter till ett Commandobjekt, det vill säga en instans av en klass som implementerar IDataParameter. Exempelvis SqlParameter.

```
IDbCommand command = new SqlCommand("namn", connection);
command.Parameters.Add(new SqlParameter("@test",tbUrl.Text.ToString()));
```

Den kod du angav antagligen funkat om du hade haft en Dataadapter.
typ

```
adapter.SelectCommand.Parameters.Add("@parameternamn", värde);
```

 

Hoppas detta lilla exempel hjälper.

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

## #3 — Josef, 2004-04-13T20:55Z

Fungerar utmärkt! Tackar! :bire

Men hur ska jag göra här:

```
SqlParameter param = objCmd.Parameters.Add(new SqlParameter("@identity", SqlDbType.Int));
param.Direction = ParameterDirection.Output;
```

Jag får felet: 

```
Cannot implicitly convert type 'int' to 'System.Data.SqlClient.SqlParameter'
```

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

## #4 — Josef, 2004-04-13T21:14Z

Man får inget felmeddelande om man skriver så här:

```
SqlParameter param = new SqlParameter("@identity", SqlDbType.Int);
param.Direction = ParameterDirection.Output;
```

men då fungerar inte som det ska längre... :l

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

## #5 — drunken_master, 2004-04-14T09:48Z

Du kanske kan visa lite mer kod? Jag gör ett försök att hjälpa dig utan att riktigt fatta problemet :-)

Nedanstående exempel fungerar. Du kanske kan använda det.

```
using(SqlConnection conn = new SqlConnection(@""))
{
	SqlCommand command = new SqlCommand("testProcedure", conn);
	command.CommandType = CommandType.StoredProcedure;				
	SqlParameter p1 = command.Parameters.Add(new SqlParameter("@fornamn", SqlDbType.VarChar, 255));
	p1.Value = "xxxx";			
	SqlParameter p2  = command.Parameters.Add(new SqlParameter("@identity", SqlDbType.Int, 4));
	p2.Direction = ParameterDirection.Output;					
	conn.Open();
	command.ExecuteNonQuery();				
	int retur = (int)p2.Value; //här tas outputparametern omhand			
}
```

Och proceduren

```
CREATE PROCEDURE testProcedure
(
@fornamn varchar(50),
@identity int output
)
AS
INSERT INTO testar (fornamn) values (@fornamn)
set @identity = SCOPE_IDENTITY()
```

Fråga: Har du lagt till parametern till parametersamlingen i ditt commandobjekt i det fallet där du inte fick något felmeddelande??

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

## #6 — Josef, 2004-04-14T16:33Z

Ska testa detta lite senare ikväll... Tackar!

Jag tror problemet har att göra med att jag använder IDbCommand och inte SqlCommand, men jag är inte säker. Men ska som sagt testa ditt förslag lite senare ikväll.

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

## #7 — drunken_master, 2004-04-14T19:11Z

Eftersom du använder interfacen kan du göra på detta sätt istället, vilket också funkar...

```
using(SqlConnection conn = new SqlConnection(@""))
{
	IDbCommand command = new SqlCommand("testProcedure", conn);				
	command.CommandType = CommandType.StoredProcedure;				
	IDataParameter p1 = new SqlParameter("@fornamn", SqlDbType.VarChar, 255);
	p1.Value = "xxxx";			
	IDataParameter p2  = new SqlParameter("@identity", SqlDbType.Int, 4);
	p2.Direction = ParameterDirection.Output;	
	command.Parameters.Add(p1);
	command.Parameters.Add(p2);					
	conn.Open();
	command.ExecuteNonQuery();				
	int retur = (int)p2.Value;				
}
```

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

## #8 — Josef, 2004-04-14T19:49Z

Tackar för hjälpen! :bire

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/101412-idbcommand-parametrar
