webForumDet fria alternativet

problem med parameter

.NETur .NET

8 svar · 503 visningar · startad av Vinnaren

Medlem sedan sep. 2005833 inlägg
Frågan#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

Medlem sedan jan. 20022 440 inlägg
#2

vad gör

@name VarChar(70) = null

asp.net sidan heter den ju

bloggType
Medlem sedan sep. 2005833 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

Medlem sedan jan. 20022 440 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...

Medlem sedan sep. 2005833 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

Medlem sedan feb. 2005280 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);

Medlem sedan sep. 2005833 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

Medlem sedan sep. 2005833 inlägg
Medlem sedan feb. 20002 300 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);

:)

137 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)