rowsaffected är alltid noll, men det säger ju inget om att det inte görs någon insert!
Frågan#1
Jag har den här koden i mitt datalager:
protected int InsSqlQuery(string StoredProcName, IDataParameter[] Parameters)
{
try
{
Connection.Open();
SqlCommand Command = BuildCommand(StoredProcName,Parameters);
Command.Parameters.Add(new SqlParameter("@@Identity", SqlDbType.Int, 4, ParameterDirection.Output, false, 0, 0, string.Empty, DataRowVersion.Default, null));
Command.ExecuteNonQuery();
return ((int)Command.Parameters["@@Identity"].Value);
}
finally
{
Connection.Close();
}
}
koden i BL ser ut så här:
public int AddProfile(string name,int userid)
{
int rowsaffected = 0;
try
{
SqlParameter[] parameters =
{
new SqlParameter("@belongsto", SqlDbType.Int),
new SqlParameter("@name", SqlDbType.NVarChar,30),
};
parameters[0].Value = userid;
parameters[1].Value = name;
InsSqlQuery("sp_AddProfile", parameters);
return rowsaffected;
}
catch
{
return 0;
}
}
Men jag får tillbaka 0 hela tiden och inget sparas i databasen, SP:n som skickas in ser ut så här:
ALTER PROCEDURE webdns.sp_AddProfile
@belongsto int,
@name nvarchar(30)
AS
INSERT INTO Profiles ([Name],BelongsTo) VALUES(@name,@belongsto)
