---
title: "Problem med lagerkommunikation"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/141943-problem-med-lagerkommunikation"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "echoSwe"
published: "2006-02-02T20:47:38.000Z"
updated: "2006-02-25T02:59:54.000Z"
replies: 12
views: 828
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/141943-problem-med-lagerkommunikation"
---

# Problem med lagerkommunikation

## #1 — echoSwe, 2006-02-02T20:47Z

Tja

Får detta felet

```
 Exception Details: MySql.Data.MySqlClient.MySqlException: #42000You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM blog_entries WHERE entryId = '@entryId'' at line 1

Source Error:
Line 41:    public int RunNonQuery(IDbCommand command)
Line 42:    {
Line 43:         MySqlCommand objCmd = (MySqlCommand)command;
Line 44:         objCmd.Connection.Open();
[red]Line 45:         return objCmd.ExecuteNonQuery();[/red]
Line 46:     }
Line 47: 

Source File: d:\WD\hafse\App_Code\MySQL_DAL.cs    Line: 45
```

Härifrån kommer SQL-en:

```
    public string DeleteEntry(string _entryId)
    {
		DataAccessLayer oDal = new DataAccessLayer();
        System.Data.IDbCommand objCmd = oDal.CreateCommand();
		objCmd.CommandText = "DELETE FROM blog_entries WHERE entryId = '@entryId';";

		System.Data.IDataParameter objParam_Del = objCmd.CreateParameter();
        objParam_Del.ParameterName = "@entryId";
        objParam_Del.Value = _entryId.ToString();
	objParam_Del.DbType = DbType.String;
        objCmd.Parameters.Add(objParam_Del);

        return "Rows affected: " + Convert.ToString(oDal.RunNonQuery(objCmd));
    }
```

Summa summarum så är det så att den inte lägger till parametern i command-objektets "CommandText". Hur gör jag för att den ska lägga till parametrar??

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

## #2 — Dino, 2006-02-02T21:51Z

```
"DELETE FROM blog_entries WHERE entryId = '@entryId';";
```

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

## #3 — echoSwe, 2006-02-02T22:21Z

Dino - det har du helt rätt i, fixat.
Dock tror jag grundproblemet är att den inte lägger till parametrarna - det är nog det som jag behöver hjälp med. Om jag kör en trace:

```
			System.Web.HttpContext.Current.Trace.Write("MySQL DAL DELETE", objCmd.CommandText.ToString());
```

 i mitt DAL så blir svaret: 

> MySQL DAL DELETE	DELETE FROM blog_entries WHERE entryId = '@entryId';

och MySQL-databasen returnerar 0 - dvs inga rader påverkades.

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

## #4 — Dino, 2006-02-02T22:34Z

```
"DELETE FROM blog_entries WHERE entryId = @entryId";
```

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

## #5 — echoSwe, 2006-02-02T23:25Z

Jo, det har jag testat.

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

## #6 — echoSwe, 2006-02-04T12:39Z

Så hur gör jag för att få den att lägga till mina parametrar?

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

## #7 — wallabou, 2006-02-05T11:21Z

Hej, i Mysql ska du köra ? på parameterar istället för @
Alltså:

```
"DELETE FROM blog_entries WHERE entryId = ?entryId";
```

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

## #8 — echoSwe, 2006-02-05T13:41Z

Hmm, det funkade inte?

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

## #9 — echoSwe, 2006-02-05T18:39Z

Testade lite till och det verkar fortfarande inte fungera...?

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

## #10 — cok, 2006-02-05T18:51Z

> **wallabou skrev:**
>
> Hej, i Mysql ska du köra ? på parameterar istället för @
> Alltså:
>
>
> ```
> "DELETE FROM blog_entries WHERE entryId = ?entryId";
> ```

Var har du fått detta ifrån?

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

## #11 — echoSwe, 2006-02-05T20:58Z

Du kanske kan hjälpa mig att få det att fungera med parametrar - gör jag rätt?

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

## #12 — echoSwe, 2006-02-25T02:31Z

```
       System.Data.IDbCommand objCmd = oDal.CreateCommand();
		objCmd.CommandText = "DELETE FROM blog_entries WHERE entryId = ?entryId;";

		System.Data.IDataParameter objParam_Del = objCmd.CreateParameter();
        objParam_Del.ParameterName = "?entryId";
        objParam_Del.Value = _entryId.ToString();
        objCmd.Parameters.Add(objParam_Del);
		string result;

			result = "Rows affected: " + oDal.RunNonQuery(objCmd).ToString();
```

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

## #13 — echoSwe, 2006-02-25T02:59Z

If you have many parameters you want to add to a command, use

objParam_Del = objCmd.CreateParameter();

for each parameter, not instantiating a new parameter, but rather creating a new instance of it from the command object.

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/141943-problem-med-lagerkommunikation
