Avatar billede dotnewbi Juniormester
07. oktober 2007 - 13:53 Der er 26 kommentarer og
2 løsninger

problem med app_code funktion

Hej Eksperten!

Jeg en problem med at få data fra en funktion son ligger i App_code.
Min cs file i App_code ser sådan her ud:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public class addconstring
{

    public void GetString(Int id, String name)
    {

        SqlConnection myConnection  = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnect"].ConnectionString);

        SqlCommand command = new SqlCommand("select_user", myConnection);
        command.CommandType = CommandType.StoredProcedure;
        command.Parameters.Add("@id", SqlDbType.Int);
        command.Parameters.Add("@name", SqlDbType.VarChar);
        command.Parameters["@id"].Value = @id;
        command.Parameters["@name"].Value = @name;
        command.Connection.Open();

        SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);

        while (reader.Read())
        {
            string sendme = "User id " + reader["user_id"].ToString() + "<br />";
            sendme = sendme + "User Name " + reader["user_name"].ToString() + "<br />";
            sendme = sendme + "User password " + reader["password"].ToString() + "<br />";
            sendme = sendme + "User status " + reader["status"].ToString() + "<br />";
        }
       
        reader.Close();

        Return sendme;
   
    }
}

og mit funktions kald ser sådan her ud :

protected void Page_Load(object sender, EventArgs e)
    {
        addconstring conn = new addconstring();

        Response.Write(conn.GetString(12,tim));

     

    }
Avatar billede nielle Nybegynder
07. oktober 2007 - 14:01 #1
Kan din kode overhovedt kompile? "return" skal skrives med småt.
Avatar billede nielle Nybegynder
07. oktober 2007 - 14:02 #2
Desuden skal sendme-stringen være defineret udenfor duin while-løkke.
Avatar billede nielle Nybegynder
07. oktober 2007 - 14:05 #3
Sådan?

public class addconstring
{
    public void GetString(Int id, String name)
    {
        SqlConnection myConnection  = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnect"].ConnectionString);

        SqlCommand command = new SqlCommand("select_user", myConnection);
        command.CommandType = CommandType.StoredProcedure;
        command.Parameters.Add("@id", SqlDbType.Int);
        command.Parameters.Add("@name", SqlDbType.VarChar);
        command.Parameters["@id"].Value = @id;
        command.Parameters["@name"].Value = @name;
        command.Connection.Open();

        SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);

        string sendme = "";
        while (reader.Read())
        {
            sendme += "User id " + reader["user_id"].ToString() + "<br />";
            sendme += "User Name " + reader["user_name"].ToString() + "<br />";
            sendme += "User password " + reader["password"].ToString() + "<br />";
            sendme += "User status " + reader["status"].ToString() + "<br />";
        }
       
        reader.Close();
        command.Connection.Close();

        return sendme;
    }
}
Avatar billede dotnewbi Juniormester
07. oktober 2007 - 14:12 #4
jeg får fejl i:

public void GetString(Int id, String name)
Avatar billede dotnewbi Juniormester
07. oktober 2007 - 14:15 #5
ah har fået skrevet string + int med stort
Avatar billede dotnewbi Juniormester
07. oktober 2007 - 14:16 #6
jeg får fejl i :

return sendme;
Avatar billede dotnewbi Juniormester
07. oktober 2007 - 14:23 #7
min connstr i web.config ser sådan her ud :

<connectionStrings>
    <remove name="dbconnect"/>
    <add name="dbconnect" connectionString="server=myserver;uid=myuser;pwd=mypass;database=mydb" providerName="System.Data.SqlClient"/>
  </connectionStrings>

og min SP ser sådan her ud :

CREATE PROCEDURE select_user
@name varchar(255),
@id INT
AS
BEGIN
  select * from users Where user_name = @name and user_id = @id
END
Avatar billede kalp Novice
07. oktober 2007 - 14:24 #8
public void GetString(Int id, String name)

til

public string GetString(Int id, String name)
Avatar billede dotnewbi Juniormester
07. oktober 2007 - 14:30 #9
Ja selvfølgelig !  men den udskriver ingen ting også selv om at jeg sætter  sendme ="en tekst" får while løkken.
Avatar billede dotnewbi Juniormester
07. oktober 2007 - 14:30 #10
public string GetString(string id,int name)
    {
        SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnect"].ConnectionString);

        SqlCommand command = new SqlCommand("select_user", myConnection);
        command.CommandType = CommandType.StoredProcedure;
        command.Parameters.Add("@id", SqlDbType.Int);
        command.Parameters.Add("@name", SqlDbType.VarChar);
        command.Parameters["@id"].Value = @id;
        command.Parameters["@name"].Value = @name;
        command.Connection.Open();

        SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);

        string sendme = "Tester nu ";
        while (reader.Read())
        {
            sendme += "User id " + reader["user_id"].ToString() + "<br />";
            sendme += "User Name " + reader["user_name"].ToString() + "<br />";
            sendme += "User password " + reader["password"].ToString() + "<br />";
            sendme += "User status " + reader["status"].ToString() + "<br />";
        }

        reader.Close();
       

        return sendme;
    }
Avatar billede kalp Novice
07. oktober 2007 - 14:35 #11
nej metoden skal vel heller ikke udskrive noget, men der hvor du kalder den skal den vel.

addconstring test = new addconstring();

Response.Write(test.GetString("1",2));

f.eks
Avatar billede kalp Novice
07. oktober 2007 - 14:35 #12
problemet lægger i hvertfald der hvor du kalder metoden nu og ikke i selve metoden selv.
Avatar billede nielle Nybegynder
07. oktober 2007 - 14:41 #13
07/10-2007 14:30:45>

Et hurtigt spørgsmål: Hvorfor har du fjernet linjen hvor jeg lukker for database-fobindelsen?
Avatar billede dotnewbi Juniormester
07. oktober 2007 - 14:42 #14
mit kald ser sådan her ud :

addconstring conn = new addconstring();

Response.Write(conn.GetString(12,"tim"));

men jeg får ingen fejl medelse
Avatar billede dotnewbi Juniormester
07. oktober 2007 - 14:43 #15
db lukningen er på funktionen men kom bare ikke med i den dele jeg copy/pasted
Avatar billede kalp Novice
07. oktober 2007 - 14:47 #16
dit kald bør være

addconstring conn = new addconstring();

Response.Write(conn.GetString("tim",12));
Avatar billede nielle Nybegynder
07. oktober 2007 - 14:50 #17
... eller:

public string GetString(string id,int name)

skal rettes til:

public string GetString(int id, string name)

:^)
Avatar billede dotnewbi Juniormester
07. oktober 2007 - 14:57 #18
ja jeg har kommet til at bytte om på hvad der er en string og en int :

public string GetString(string id,int name)

skulle være

public string GetString(int id,string name)

så det virker nu så smid et svar så er der points
Avatar billede kalp Novice
07. oktober 2007 - 14:59 #19
:D
Avatar billede kalp Novice
07. oktober 2007 - 15:00 #20
argh lidt for hurtigt - du valgte at ændre på dine metode istedet.

så er det vel nielle.
Avatar billede kalp Novice
07. oktober 2007 - 15:05 #21
forresten - så fejler din compiller noget hvis du siger den ikke fejler i sådan en situation - eller også kigger du i det forkerte sted når du kører projektet.

Man kan godt starte et projekt selv om der er fejl og så starter det fra sidste version der fungerede uden fejl - det må være det som er tilfældet her.
Avatar billede nielle Nybegynder
07. oktober 2007 - 15:08 #22
Hvorfor giver du den egentlig både et id og et navn? Burde det ikke være nok med id'et?
Avatar billede nielle Nybegynder
07. oktober 2007 - 15:09 #23
Svar :^)
Avatar billede nielle Nybegynder
07. oktober 2007 - 15:09 #24
07/10-2007 15:00:26> Der vel en deler denne her?
Avatar billede kalp Novice
07. oktober 2007 - 15:13 #25
Det bør det nok være eftersom han da i hvertfald fik rettet retur typen af mig:)
Avatar billede nielle Nybegynder
16. oktober 2007 - 08:35 #26
Så mangler du bare at acceptere vores svar. :^)
Avatar billede nielle Nybegynder
29. oktober 2007 - 18:22 #27
??
Avatar billede nielle Nybegynder
09. november 2007 - 18:29 #28
Takker for point :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester