Hej jag har nu tagit steget över från old ASP till new ASP.NET och vill då helst lära mig C#. Jag har precis också tagit samma steg, dock kunde jag en del C# innan jag började med ASP.Net, men iaf, detta kanske inte är den bästa lösningen. Alla *.cs filer kompileras till en dll som man sedan lägger upp på servern ihop med alla *.aspx filer å det andra. *.cs filerna behövs alltså inte. Kolla i boken efter "codebehind" vilket tekniken heter då man lägger programmeringen i en fil och designen i en annan Verkade knepigt, så jag tog tag i ett exempel från boken men det exemplet skriver ut på console. Vad behöver jag ändra i denna kod för att sedan få ut fälten på min websida? Varför inte börja kolla på en asp.net tutorial... t.ex. http://www.asp.net/Tutorials/quickstart.aspxJag blir inte klok på detta!
Men vad jag inte förstår är varför alla dessa klasser gör och hur man gör!
Om man skall göra en databaskoppling till sin accessdatabas Gör man kopplingen i default.aspx.cs eller skall man använda sig av en ConnDB.cs Klass och hur gör man:
Snälla ge mig ett litet exempel på en listning från en conn. Lessnar snart.
Håller på och läser Börja med C# från Wrox. Och deras exempel med nyhetsbrevshanterare skriver dom allt i klasser som sen blir en .dll tycker det blir luddigt.
Sökte på forumet men hittade inget, kanske inte tog mig tid nog..
//GertSv: Jag blir inte klok på detta!
Jag kör min databas koppling i min codebehind fil. Där har jag förljande funktioner
<code>
public OleDbConnection myConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\hemsidor\Tipsligan\db\databas.mdb");
public OleDbDataAdapter myDataAdapter = new OleDbDataAdapter();
public DataSet GetData(string strSQL, string strName)
{
DataSet myDataSet = new DataSet("Tipsligan");
//DataTable myTable = new DataTable();
OleDbCommand myCommand = new OleDbCommand();
myCommand.Connection = myConnection;
myCommand.CommandText = strSQL;
myDataAdapter.SelectCommand = myCommand;
try
{
myConnection.Open();
if (myConnection.State == ConnectionState.Open)
{
myDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
myDataAdapter.Fill(myDataSet,strName);
myConnection.Close();
//myTable = myDataSet.Tables[strName];
}
}
catch (Exception e)
{
//Log("Error with database: "+ e.ToString());
}
return myDataSet;
}
public void UpdateData(DataSet myNewDataSet, string strName, string strSQL)
{
try
{
OleDbCommandBuilder myCommandBuilder = new OleDbCommandBuilder(myDataAdapter);
myConnection.Open();
myDataAdapter.Update(myNewDataSet, strName);
myConnection.Close();
}
catch (Exception e)
{
//Log("Error with database: "+ e.ToString());
}
}
</code>
I min ASP.Net fil skriver jag sedan följande
<code>
DataSet myData = GetData("Select Top 1 * from stryktipset order by ID Desc", "stryktipset");
if (myData.Tables["stryktipset"].Rows.Count > 0)
{
for (int i = 1; i < 14; i++)
{
lblStryktipset.Text += myData.Tables["stryktipset"].Rows[0]["Hemmalag"+ i];
lblStryktipset.Text += myData.Tables["stryktipset"].Rows[0]["bortalag"+ i];
}
}
//När man sedan lagt till en ny rad så skriver jag så här
UpdateData(myData, "stryktipset");
</code>
Detta funkar, hyfsat iaf. Blir lite problem om man försöker hämta Data från en tabell när man redan gjort det innan för att sedan uppdatera det gammla datasetet. Då får man skapa ett nytt objekt av sin codebehind class så funkar det. Jag vet inte heller hur man går till väga för att ändra någonting smidigt, så för det ändamålet använder jag mig av en SQL sats. Den här ligger också i codebehind:
<code>
public void PreformSQL(string strSQL)
{
try
{
OleDbCommand myCommand = new OleDbCommand(strSQL, myConnection);
if (myConnection.State != ConnectionState.Open)
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
myCommand.Connection.Close();
}
catch (Exception e)
{
;
}
}
</code>Sv: Jag blir inte klok på detta!
Sv: Jag blir inte klok på detta!
Här är koden:
using System;
using System.Data;
using System.Data.OleDb;
namespace DataReaderExample
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class DataReaderExample
{
public static void Main()
{
OleDbConnection thisConnection = new OleDbConnection(
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\bowling\Data\Bowlingresultat.mdb");
// Öppna anslutningsobjektet
thisConnection.Open();
// Skapa ett SQL-kommando för denna anslutning
OleDbCommand thisCommand = thisConnection.CreateCommand();
// Initiera SQL SELECT-kommandot för att hämta önskade data
thisCommand.CommandText =
"SELECT Nr, Spelare,Resultat FROM Resultat";
// Skapa ett DataReader-objekt baserat på tidigare definierat kommando
OleDbDataReader thisReader = thisCommand.ExecuteReader();
while (thisReader.Read())
{
Console.WriteLine("\t{0}\t{1}\t{2}",
thisReader["Nr"], thisReader["Spelare"], thisReader["Resultat"]);
}
thisReader.Close();
thisConnection.Close();
}
}
}Sv: Jag blir inte klok på detta!