Avatar billede jenslyn_s Nybegynder
19. oktober 2007 - 11:23 Der er 5 kommentarer og
1 løsning

SqlDataSource1.Select() og overload method

Jeg er ret ny i C#, så det er sikkert easy fix :)

I min aspx.cs har jeg nedenstående, som indsætter og returnerer insert ID'et... men jeg kan ikke compile mit website, da den giver fejlen: "No overload for method 'Select' takes '0' arguments"


SqlDataSource2.SelectCommand = "INSERT INTO image (published) VALUES(0); SELECT @@IDENTITY";
id = SqlDataSource2.Select();

Fordi jeg blander insert ind i en select? Og hvordan bør jeg konstruere det ellers?
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 11:26 #1
Du griber det lidt forkert an.
Man gør det på en lidt anden måde når man bruger sqldatasource.
Tjek evt her:
http://fredrik.nsquared2.com/viewpost.aspx?PostID=162
Avatar billede jenslyn_s Nybegynder
19. oktober 2007 - 12:20 #2
Tak for linket - jeg har læst det, men kan ikke finde ud af at bruge det i min kode :-/

Jeg vil benyttet det i forb. med filupload. Kan du guide mig lidt mere på vej?

Min kode:

public void UploadFile(object Sender, EventArgs E)
    {
        if (File1.PostedFile != null) //Checking for valid file
        {
            string StrFileName = File1.PostedFile.FileName.Substring(File1.PostedFile.FileName.LastIndexOf("\\") + 1);
            string StrFileType = File1.PostedFile.ContentType;
            int IntFileSize = File1.PostedFile.ContentLength;
            if (IntFileSize <= 0)
                Response.Write(" <font color='Red' size='2'>Uploading of file " + StrFileName + " failed </font>");
            else
            {
                int id = 1;
                ParameterCollection parameters = new ParameterCollection();
                SqlDataSource2.SelectCommand = "INSERT INTO image (published) VALUES(0); SELECT @@IDENTITY as lastID";
                id = SqlDataSource2.Select();

                StrFileName = id.ToString() + ".jpg";
                File1.PostedFile.SaveAs(Server.MapPath(".\\" + "images/" + StrFileName));
                uploadedImageURL.Text = StrFileName;
            }
        }
    }
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 12:26 #3
Hmm lad være med at bruge en sqldatasource ved fil upload.
Du skal lave en manuel håndtering af det.
Det her kunne være en inspiration:
http://www.eksperten.dk/artikler/831
Avatar billede jenslyn_s Nybegynder
19. oktober 2007 - 13:52 #4
Tak, det hjalp meget.

Jeg har jo en conn. string i web.config. Hvordan kan jeg genbruge den, så jeg ikke gentager mig selv?

// Her vil jeg gerne bruge min conn.str. fra web.config:
SqlConnection con = new SqlConnection("server=ARNEPC3;Integrated Security=SSPI;database=Test");


FRA MIN WEB.CONFIG

<connectionStrings>
        <add name="minConnectionString1" connectionString="Data Source=xxx;Initial Catalog=xxx;Persist Security Info=True;User ID=xxx;Password=xxxx" providerName="System.Data.SqlClient"/>
    </connectionStrings>
Avatar billede dr_chaos Nybegynder
19. oktober 2007 - 14:01 #5
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["minConnectionString1"].ConnectionString))

tillader mig liger at lægge et svar :)
Avatar billede jenslyn_s Nybegynder
19. oktober 2007 - 14:10 #6
Tusind tak. Velfortjent 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