Avatar billede zeroaim Nybegynder
21. marts 2007 - 21:51 Der er 18 kommentarer og
2 løsninger

SqlDataSource.Select() vil ha' et argument. Hvilket ?

Hej

Lidt kode:

SqlDataSource PlayerInfoDataSource = new SqlDataSource();
PlayerInfoDataSource.ConnectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ToString();

PlayerInfoDataSource.SelectCommandType = SqlDataSourceCommandType.Text;
PlayerInfoDataSource.SelectCommand = "SELECT PlayerID FROM PlayerID WHERE (PassWord = @PassWord)";

PlayerInfoDataSource.SelectParameters.Add("PassWord", passwordTextBox.Text.ToString());

Label1.Text = PlayerInfoDataSource.Select().ToString();

hvilket argument er det jeg mangler at sende med Select() ?

Hele den her opsætning virker fint på INSERT, men den kræver altså et argument når det er SELECT
Avatar billede zeroaim Nybegynder
21. marts 2007 - 21:52 #1
I får lige koden igen. Det blev vist noget rod at læse.

SqlDataSource PlayerInfoDataSource = new SqlDataSource();

PlayerInfoDataSource.ConnectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ToString();

PlayerInfoDataSource.SelectCommandType = SqlDataSourceCommandType.Text;

PlayerInfoDataSource.SelectCommand = "SELECT PlayerID FROM PlayerID WHERE (PassWord = @PassWord)";

PlayerInfoDataSource.SelectParameters.Add("PassWord", passwordTextBox.Text.ToString());

Label1.Text = PlayerInfoDataSource.Select().ToString();
Avatar billede arne_v Ekspert
21. marts 2007 - 22:01 #2
PlayerInfoDataSource.SelectParameters.Add("@PassWord", passwordTextBox.Text.ToString());

maaske
Avatar billede zeroaim Nybegynder
21. marts 2007 - 22:09 #3
Ja jooo,,, men når jeg har den SelectParameters.Add() så forstår jeg ikke hvad det er den vil ha mere... Som sagt virker det fint på en INSERT bare ved at bruge InsertParameters.Add() og Insert().

Hvad er forskellen?
Avatar billede arne_v Ekspert
21. marts 2007 - 22:13 #4
jeg forstaar ikke

jeg siger at der skal @ med i parameter navnet
Avatar billede zeroaim Nybegynder
21. marts 2007 - 22:15 #5
Ahhh,,, den lille detalje over så jeg selvfølgelig :-) Nej det er ikke det. Det behøves ikke. Det ved jeg (og har selvfølgelig lige testet for at være helt sikker :-)  )
Avatar billede zeroaim Nybegynder
21. marts 2007 - 22:17 #6
Altså fejlen er: Ingen overload for metoden 'Select' anvender '0' argumenter.

Den vil altså ha' noget sendt med Select()... Select(Argument);
Avatar billede snepnet Nybegynder
21. marts 2007 - 22:48 #7
Hvad sker der hvis du bare giver den null?
Mvh
Avatar billede zeroaim Nybegynder
21. marts 2007 - 22:51 #8
Den beder om en "DataSourceSelectArguments arguments". Jeg har prøvet den som DataSourceSelectArguments.Empty men det fejler.

Det er sikkert vildt nemt det her, det er bare mig der fatter hat.
Avatar billede zeroaim Nybegynder
21. marts 2007 - 22:53 #9
Objektreferencen er ikke indstillet til en forekomst af et objekt.

Det sker hvis den får null
Avatar billede zeroaim Nybegynder
21. marts 2007 - 22:56 #10
Med den her DataSourceSelectArguments args = new DataSourceSelectArguments(); smidt ind returnere den et object System.Data.DataView
Avatar billede snepnet Nybegynder
21. marts 2007 - 22:56 #11
Sådan en her så:
DataSourceSelectArguments.Empty
Mvh
Avatar billede zeroaim Nybegynder
21. marts 2007 - 23:01 #12
Det har jeg prøvet :-(
Avatar billede snepnet Nybegynder
21. marts 2007 - 23:31 #13
Høh ... Vi har lige overlappet kan jeg se - Du får vel det samme tilbage med en .Empty, som du får med det tomme argument du selv lavede tidligere, så alt er vel i den skønneste orden eller?
Mvh
Avatar billede zeroaim Nybegynder
21. marts 2007 - 23:54 #14
Næh hov... Nu testede jeg lige på .Empty igen. Den fejler ikke... Jeg ved bare ikke hvad den returnere, da jeg kan se den er et object af System.Data.DataView, og den ved jeg ikke lige hvordan jeg får værdien ud af
Avatar billede zeroaim Nybegynder
22. marts 2007 - 02:07 #15
Det viser sig (efter at jeg har læst rigtigt mange sider online) at det her er noget der har været store problemer med at få til at virke. Jeg troede egentligt det ville være ret lige til og jeg havde da også regnet med at et spørgsmål herinde, bare ville give et svar indenfor 10 min. Men sådan gik det ikke.

Jeg har fået lavet en mulig løsning. Jeg siger ikke den er god, men den virker. Jeg vil stadig gerne høre fra jer derude der muligvis har en idé til en bedre løsning.

Men her er så endelig koden:


        SqlDataSource PlayerInfoDataSource = new SqlDataSource();
        PlayerInfoDataSource.ConnectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ToString();

        PlayerInfoDataSource.SelectCommandType = SqlDataSourceCommandType.Text;
        PlayerInfoDataSource.SelectCommand = "SELECT PlayerID FROM PlayerID WHERE (PassWord = @PassWord)";

        PlayerInfoDataSource.SelectParameters.Add("PassWord", passwordTextBox.Text.ToString());

        DataSourceSelectArguments args = new DataSourceSelectArguments();

        DataView DV = (DataView)PlayerInfoDataSource.Select(args);
        DataTable DT = DV.ToTable();
        string PlayerID = DT.Rows[0].ItemArray[1].ToString();

        Label1.Text = PlayerID;
Avatar billede zeroaim Nybegynder
22. marts 2007 - 02:10 #16
En lille rettelse.

Anden nederste linie skal 1 tallet selvfølgelig i ItemArray[1] være 0 for at det virker på min søgning der kun resultere en linie.
Avatar billede zeroaim Nybegynder
22. marts 2007 - 02:14 #17
Smid et svar Snepnet, så får du det halve af point :-)
Avatar billede snepnet Nybegynder
22. marts 2007 - 08:03 #18
Et svar kommer her :o)
Mvh
Avatar billede snepnet Nybegynder
22. marts 2007 - 08:04 #19
Eller her måske :o)
MVh
Avatar billede zeroaim Nybegynder
22. marts 2007 - 11:20 #20
Nej nej nej hvor kan man se at jeg var træt i nat da jeg skrev det her :-)

Takker for hjælpen allesammen

Lukket
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