09. juni 2004 - 08:22Der 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?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
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.
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]
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;
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?
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.
Synes godt om
Ny brugerNybegynder
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.