Avatar billede basementjack Nybegynder
30. juli 2004 - 22:37 Der er 20 kommentarer og
1 løsning

Retunere en string fra en database

Jeg søger en funktion, der returner en string fra en database, skrevet i C#(SQL-sætningen søger narturligvis således at kun et felt vil blive fundet i databasen). Funktionen skal ikke være codebehind eller noget, bare lokal kode på en enkelt .aspx...
Avatar billede snepnet Nybegynder
30. juli 2004 - 23:20 #1
Hej basementjack.... Hvad er det du vil ? - det er lidt diffust :o)
Avatar billede basementjack Nybegynder
30. juli 2004 - 23:22 #2
Jeg har selv fundet ud af det.. :)
Ville have smidt et svar ind i C# meeeeen.. Jeg ved ikke hvordan siger:
Function myFunction
....
End Function
på C#'sk.. :( Bl.a...
Avatar billede arne_v Ekspert
30. juli 2004 - 23:31 #3
int myFunction()
{
...
}
Avatar billede basementjack Nybegynder
30. juli 2004 - 23:32 #4
public static string getFelt(object sender, System.EventArgs e)
{
        string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=db.mdb";
        System.Data.IDbConnection dbConnection = new System.Data.OleDb.OleDbConnection(connectionString);

        string queryString = "SQL";
        System.Data.IDbCommand dbCommand = new System.Data.OleDb.OleDbCommand();
        dbCommand.CommandText = queryString;
        dbCommand.Connection = dbConnection;

        dbConnection.Open();
        System.Data.IDataReader dataReader = dbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection);

        return datareader("FeltDuVilSe")

}
Avatar billede basementjack Nybegynder
30. juli 2004 - 23:33 #5
Det var det beste gæt jeg kunne komme med efter at have googlet lidt....
Skulle vist bare have skrevet "int"... Oh well.. :)
Avatar billede arne_v Ekspert
30. juli 2004 - 23:34 #6
Hvis den returnere string så skal du ikke skrive int
Avatar billede basementjack Nybegynder
30. juli 2004 - 23:35 #7
Okay.. Det skal være en string den returnerer..
Avatar billede arne_v Ekspert
30. juli 2004 - 23:39 #8
OleDbConnection dbConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=db.mdb");
dbConnection.Open();
OleDbCommand dbCommand = new OleDbCommand("SELECT ...", con);
OleDbDataReader dataReader = dbCommand.ExecuteReader();
dataReader.Read();
return (string)dataReader[0];
Avatar billede arne_v Ekspert
30. juli 2004 - 23:39 #9
eller:

OleDbConnection dbConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=db.mdb");
dbConnection.Open();
OleDbCommand dbCommand = new OleDbCommand("SELECT ...", con);
return (string)dbCommand.ExecuteScalar();
Avatar billede arne_v Ekspert
30. juli 2004 - 23:40 #10
OK - måske er CommandBehavior.CloseConnection en god ide.
Avatar billede basementjack Nybegynder
30. juli 2004 - 23:43 #11
Den kode jeg pastede først, vil altså ikke virke?..
Avatar billede arne_v Ekspert
30. juli 2004 - 23:45 #12
Det er næsten den samme kode som min.

Jeg har forkortet de øverste linier lidt, men jeg tror at dine vil virke.

Du skal kalde Read metodem på en DataReader inden du har nogle data.

Og du skal indexere med nummer i DataReader for at få data (eller bruge en metode
til at konvertere fra felt navn til felt nummer).
Avatar billede arne_v Ekspert
30. juli 2004 - 23:46 #13
Og så tror jeg at ExecuteScalar er smartere til dit formål.
Avatar billede basementjack Nybegynder
30. juli 2004 - 23:53 #14
Så bliver det :

public static string getFelt(object sender, System.EventArgs e)
{
OleDbConnection dbConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=db.mdb");
dbConnection.Open();
OleDbCommand dbCommand = new OleDbCommand("SELECT ...", con);
return (string)dbCommand.ExecuteScalar();
dbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}
Avatar billede arne_v Ekspert
30. juli 2004 - 23:55 #15
dbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection

skal slettes
Avatar billede arne_v Ekspert
30. juli 2004 - 23:56 #16
public static string getFelt(object sender, System.EventArgs e)
{
OleDbConnection dbConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=db.mdb");
dbConnection.Open();
OleDbCommand dbCommand = new OleDbCommand("SELECT ...", con);
return (string)dbCommand.ExecuteScalar();
}
Avatar billede basementjack Nybegynder
30. juli 2004 - 23:57 #17
Oki.. Mange tak.. :) Læg et svar.. :)
Avatar billede arne_v Ekspert
30. juli 2004 - 23:57 #18
eller:

public static string getFelt(object sender, System.EventArgs e)
{
OleDbConnection dbConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=db.mdb");
dbConnection.Open();
OleDbCommand dbCommand = new OleDbCommand("SELECT ...", con);
string res = (string)dbCommand.ExecuteScalar();
dbCommand.Close();
return res;
}
Avatar billede arne_v Ekspert
30. juli 2004 - 23:57 #19
som du kan se er der uendeligt mange måder at kombinere det på
Avatar billede arne_v Ekspert
30. juli 2004 - 23:57 #20
svar
Avatar billede basementjack Nybegynder
30. juli 2004 - 23:58 #21
Jep... Men jeg kan bedst li den sidste du skrev.. :P
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