mrpddnos
Gebruiker
- Lid geworden
- 19 dec 2007
- Berichten
- 12
Beste allemaal,
Ik zit met een stored procedure in mijn maag die ik op een MS SQL 2008 prof server gebruik in combincatie met C#.NET. Ik probeer een record toe te voegen en de Identity dan te returnen door middel van een output parameter. De record word wel toegevoegd, maar de identity word niet juist gereturnd. Als ik de parameter in SQL Server Management console uitvoer returned SQL Server de Identity goed. Dus daar is niets mis mee.
De excacte foutmelding die ik krijg is: "De invoertekenreeks is onjuist." Kan iemand mij helpen? Wat doe ik fout. Hier onder de bijbehorende code. Ik heb een klein beetje code verwijderd. Dat is code waar ik de overige parameters aanmaak. Ik gebruik 16 parameters, wat komt op 48 regels code voor het toevoegen van de parameters. Saaie stof waar ik jullie graag voor wilde behoeden. De code voor de desbetreffende return parameter staat wel in het fragment hieronder:
############## Stored Procedure #################
########## MeldingenManager extends dbManager ##############
################## dbManager ###################
############ Einde codefragmenten #############
Kan iemand uitvinden wat hier mis gaat?
Ik zit met een stored procedure in mijn maag die ik op een MS SQL 2008 prof server gebruik in combincatie met C#.NET. Ik probeer een record toe te voegen en de Identity dan te returnen door middel van een output parameter. De record word wel toegevoegd, maar de identity word niet juist gereturnd. Als ik de parameter in SQL Server Management console uitvoer returned SQL Server de Identity goed. Dus daar is niets mis mee.
De excacte foutmelding die ik krijg is: "De invoertekenreeks is onjuist." Kan iemand mij helpen? Wat doe ik fout. Hier onder de bijbehorende code. Ik heb een klein beetje code verwijderd. Dat is code waar ik de overige parameters aanmaak. Ik gebruik 16 parameters, wat komt op 48 regels code voor het toevoegen van de parameters. Saaie stof waar ik jullie graag voor wilde behoeden. De code voor de desbetreffende return parameter staat wel in het fragment hieronder:
############## Stored Procedure #################
Code:
USE [TotalLog_v2]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[InsertMelding]
@MID int output,
@Naam nvarchar(MAX),
@Adres nvarchar(MAX),
@Postcode nvarchar(6),
@Woonplaats nvarchar(max),
@Telefoon nvarchar(10),
@Gebeurtenis text,
@Aandoening text,
@ExtraHulp text,
@Tijd DateTime,
@Geboortedatum DateTime,
@Geslacht int,
@Afgesloten DateTime,
@Opmerkingen text,
@Doorverwezen int,
@Hulpverlener nvarchar(max)
AS
BEGIN
INSERT INTO Meldingen
(Naam,Adres,Postcode,Woonplaats,Telefoon,Gebeurtenis,Aandoening,ExtraHulp,Tijd,Geboortedatum,
Geslacht,Afgesloten,Opmekringen,Doorverwezen,Hulpverlener)
VALUES
(@Naam,@Adres,@Postcode,@Woonplaats,@Telefoon,@Gebeurtenis,@Aandoening,@ExtraHulp,@Tijd,@Geboortedatum,
@Geslacht,@Afgesloten,@Opmerkingen,@Doorverwezen,@Hulpverlener);
SELECT @@IDENTITY as '@MID'
END
########## MeldingenManager extends dbManager ##############
Code:
int MID;
SqlCom = new SqlCommand();
#region SqlParameters
#region New Parameters
SqlParamMid = new SqlParameter();
/*
* Irrelevante code verwijderd
*/
#endregion
#region Param naam
/*
* Irrelevante code verwijderd
*/
SqlParamMid.ParameterName = "@MID";
#endregion
#region Param values
/*
* Irrelevante code verwijderd
*/
SqlParamMid.Direction = ParameterDirection.Output;
SqlParamMid.Size = 16;
SqlParamMid.SqlDbType = SqlDbType.Int;
#endregion
#region Param addd to command
SqlCom.Parameters.Add(SqlParamDoorverwezen);
#endregion
#endregion
SqlCom.CommandText = "InsertMelding";
SqlCom.CommandType = CommandType.StoredProcedure;
MID = this.ExecuteIMelding("@MID", ref SqlCom);
return this.GetMeldingen();
################## dbManager ###################
Code:
protected int ExecuteIMelding(string strIdentifierName, ref SqlCommand sqlCommand)
{
try
{
this.OpenCon();
sqlCommand.Connection = this.sqlCon;
sqlCommand.ExecuteScalar();
return int.Parse(sqlCommand.Parameters[strIdentifierName].Value.ToString());
//return int.Parse(sqlCommand.
}
catch (Exception ex)
{
throw ex;
// Insert exception into database for support purposes
}
finally
{
this.CloseCon();
}
}
############ Einde codefragmenten #############
Kan iemand uitvinden wat hier mis gaat?