webForumDet fria alternativet

problem med parameter

8 svar · 503 visningar · startad av Vinnaren

VinnarenMedlem sedan sep. 2005858 inlägg
#1

Hej

Har problem med att få in data i databasen. Jag skickar in det till en lagrad procedur, men får felmeddelandet:
Procedure or Function 'CreateBlogg' expects parameter '@bloggName, which was not supplied.

tar jag bort den raden får jag samma felmeddelande på @security.

Har koden:

                con.Open();

                SqlCommand cmd = new SqlCommand("dbo.CreateBlogg", con);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.Add("@bloggName", SqlDbType.VarChar, 50).Value = create.BloggName;
                cmd.Parameters.Add("@bloggType", SqlDbType.Int, 4).Value = create.BloggType;
                cmd.Parameters.Add("@security", SqlDbType.UniqueIdentifier).Value = create.Security;
                cmd.Parameters.Add("@phone", SqlDbType.VarChar, 16).Value = create.Phone;
                cmd.Parameters.Add("@theme", SqlDbType.Int, 4).Value = create.Theme;

                cmd.ExecuteNonQuery();

Proceduren har följande inparametrar:

(
	@bloggName VarChar(50),
	@name VarChar(70) = null,
	@bloggType int,
	@security UniqueIdentifier,
	@phone VarChar(16) = null,
	@theme Int
)

Hur kan man lösa detta??

Tacksam för all hjälp :stud

CatZMedlem sedan jan. 20022 341 inlägg
#2

vad gör

@name VarChar(70) = null

asp.net sidan heter den ju

bloggType
VinnarenMedlem sedan sep. 2005858 inlägg
#3

oki, tog bort @name VarChar(70) = null

men får felmeddelandet:

Ett fel inträffade när bloggen skulle skapas:
System.Data.SqlClient.SqlException: Procedure or Function 'CreateBlogg' expects parameter '@bloggName', which was not supplied. vid System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) vid System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) vid System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) vid System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) vid System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) vid System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) vid System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) vid System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) vid System.Data.SqlClient.SqlCommand.ExecuteNonQuery() vid CreateDB.CreateBlogg() i CreateDB.cs:rad 41

rad 41 är:
cmd.ExecuteNonQuery();

Hur löser man detta??

Tacksam för all hjälp

CatZMedlem sedan jan. 20022 341 inlägg
#4

JAg tycker att

System.Data.SqlClient.SqlException skrev:

Procedure or Function 'CreateBlogg' expects parameter '@bloggName', which was not supplied

talar om precis vad som felet är...

VinnarenMedlem sedan sep. 2005858 inlägg
#5

märkte nu att allt var null eller 0.

Vet inte varför det blir det :OO

public class Create
{

    private String security;
    private int bloggType;
    private int theme;
    private String bloggName;
    private String userID;
    private String phone;

    public String Security
    {
        get { return security; }
        set { security = value; }
    }
    public int BloggType
    {
        get { return bloggType; }
        set { bloggType = value; }
    }
    public int Theme
    {
        get { return theme; }
        set { theme = value; }
    }
    public String BloggName
    {
        get { return bloggName; }
        set { bloggName = value; }
    }
    public String UserID
    {
        get { return userID; }
        set { userID = value; }
    }
    public String Phone
    {
        get { return phone; }
        set { phone = value; }
    }

    public Create()
    {
    }

    public Create(string security, int bloggType, int theme, string bloggName, string userID, string phone)
    {
        this.Security = security;
        this.BloggType = bloggType;
        this.Theme = theme;
        this.BloggName = bloggName;
        this.UserID = userID;
        this.Phone = phone;
    }

    public static void CreateBlogg()
    {
        CreateDB.CreateBlogg();
    }
}

från aspx-sidan

Create create = new Create(security, bloggType, theme, bloggName, userID, phone);
Create.CreateBlogg();

när jag anropar CreateBlogg() är allt borta dvs null.

Hur löser jag detta??

Tacksam för all hjälp :stud

freguzMedlem sedan feb. 2005282 inlägg
#6

Jag skulle tippa att eftersom CreateBlogg() är en statisk funktion så har den ingen aning om att du fyllt Createobjektet med fina data. Skulle väl kunna funka om du skickar med createobjektet, typ Create.CreateBlogg(create);

VinnarenMedlem sedan sep. 2005858 inlägg
#7

tack (y) , nu börjar det gå framåt.

Ett problem bara är GUID

Guid security = txtSecurity.Text;

får felmeddelandet:
Det går inte att implicit konvertera typen string till System.Guid

Hur löser man detta??

Tacksam för all hjälp :stud

VinnarenMedlem sedan sep. 2005858 inlägg
PhorpherMedlem sedan feb. 20002 059 inlägg
#9

Vinnaren skrev:

det löste sig med denna :bire :P

http://msdn2.microsoft.com/en-us/library/system.componentmodel.guidconverter.aspx

Det funkar också bra med:

Guid security = new Guid(txtSecurity.Text);

:)

Genererad på 379 ms · cache AV · v20260730165559-full.f96bc7eb