Avatar billede krestionsen Nybegynder
09. juni 2004 - 08:22 Der er 8 kommentarer og
1 løsning

konvertere dataset til en int

Jeg har lavet et dataset som returnere en int og datasettet virker også godt nok, men hvis jeg sætter en int variabel = datasettet, så får jeg fejlen: "CS0029 cannot implicitly convert type System.Data.DataSet to int", så er mit spørgsmål så, hvordan sætter jeg min int variabel = datasettet, så jeg kan bruge det resultat fra datasettet?
Avatar billede chakawoo.dk Nybegynder
09. juni 2004 - 08:28 #1
Lige umiddelbart forstår jeg ikke helt hvad det er du vil..
Kan du ikke smide noget af den relevante kode
Avatar billede krestionsen Nybegynder
09. juni 2004 - 08:36 #2
Jeg har lavet et dataset metode "System.Data.DataSet selectLokalitet(string navn)" og ud fra det navn, som metoden får med ind returnere den et lokalitetsid, som jeg skal bruge i en anden metode, som har en parameter der hedder lokalitetsid, og så sætter jeg variablen"int lokalitetsid = selectLokalitet(navn);" og derefter returnere den den fejl, som jeg har beskrevet.
Avatar billede guidmaster Nybegynder
09. juni 2004 - 08:52 #3
Du skal have fat i den tabel og den række som indeholder din værdi. Et dataset kan indeholde flere tabeller og en tabel kan selvfølgelig også indeholde flere rækker.
Så mon ikke din kode skal se ud som følgende:
int variable = DitDataSet[0].Rows[0][0]
Avatar billede krestionsen Nybegynder
09. juni 2004 - 09:09 #4
Jeg har lige prøvet det du sagde, men synes ikke rigtigt jeg kan få det til at virke, jeg har skrevet lokalitetid = selectLokalitet[0].Rows[0][0] og så kommer den med følgende fejl "CS0654 selectLokalitet(string) without parentheses", jeg har lige tilføjet metoden, så du kan se den.

System.Data.DataSet selectLokalitet(string navn)
    {
        string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=D:\\Fam\\db1.mdb";
        System.Data.IDbConnection dbConnection = new System.Data.OleDb.OleDbConnection(connectionString);

        string queryString = "SELECT [Lokalitet].[LokalitetID] FROM [Lokalitet] WHERE ([Lokalitet].[Navn] = @Na" +
        "vn)";
        System.Data.IDbCommand dbCommand = new System.Data.OleDb.OleDbCommand();
        dbCommand.CommandText = queryString;
        dbCommand.Connection = dbConnection;

        System.Data.IDataParameter dbParam_navn = new System.Data.OleDb.OleDbParameter();
        dbParam_navn.ParameterName = "@Navn";
        dbParam_navn.Value = navn;
        dbParam_navn.DbType = System.Data.DbType.String;
        dbCommand.Parameters.Add(dbParam_navn);

        System.Data.IDbDataAdapter dataAdapter = new System.Data.OleDb.OleDbDataAdapter();
        dataAdapter.SelectCommand = dbCommand;
        System.Data.DataSet dataSet = new System.Data.DataSet();
        dataAdapter.Fill(dataSet);

        return dataSet;
    }
Avatar billede prec Nybegynder
09. juni 2004 - 10:53 #5
Hvorfor bruger du overhovedet et dataset her? så vidt jeg kan se er det kun en enkelt ting du vil hente ud fra din database, jeg ville gøre følgende:

private int selectLokalitet(string navn)
{
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=D:\\Fam\\db1.mdb";
System.Data.IDbConnection dbConnection = new System.Data.OleDb.OleDbConnection(connectionString);
string queryString = "SELECT [Lokalitet].[LokalitetID] FROM [Lokalitet] WHERE ([Lokalitet].[Navn] = '" + navn + "')";
System.Data.IDbCommand dbCommand = new System.Data.OleDb.OleDbCommand();
dbCommand.CommandText = queryString;
dbCommand.Connection = dbConnection;

dbConnection.Open();

int returnVar = (int)dbCommand.ExecuteScalar();

dbConnection.Close();

return returnVar;
}

Det ser generelt ud til at din kode er lidt rodet, hvorfor vil du bruge et parameter når du ikke bruger storedprocedures?
Avatar billede prec Nybegynder
09. juni 2004 - 10:53 #6
glemte lige at lave det som et svar, hvis du føler det som et svar er der et her :)
Avatar billede krestionsen Nybegynder
09. juni 2004 - 18:24 #7
Ja, det virker perfekt nu:)
Tak, alle point går til dig prec.
Avatar billede krestionsen Nybegynder
09. juni 2004 - 18:26 #8
Jeg er lidt newbie til asp.net og ved ikke hvad du mener med storedprocedures, har aldrig arbejdet med det?
Avatar billede prec Nybegynder
09. juni 2004 - 18:42 #9
storedprocedures har ikke decideret noget med asp.net at gøre, det er en funktion der findes i MS SQL, det er muligheden for at lave en funktion eller en procedure som du så kører fra din kode og giver nogle parametre, og denne funktion udfører så en eller flere querys osv.
Det er både sikrere end at bruge querystrings og til en vis grad også smartere, det er dog en hel videnskab for sig selv.
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