Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 3 Nächste Version anzeigen »

Model

Der erste Schritt beim Erstellen ist das Anlegen eines Models welches die Datenstruktur vorgibt der Datenbank vorgibt.
Hierzu wird im Ordner Models eine neue Klasse angelegt. Dort werden dann Attribute und Methoden der Klasse definiert.

Class User
public class User
{
	// Attribute inklusive Setter / Getter
	public int Id {get; set; };
	public String Name {get; set; };
}

Controller

Im nächsten Schritt legen Sie in dem Ordner Controllers den zugehörigen Controller der Klasse User an. Die Benennung folgt folgenden
Richtlinien [Model]Controller. Der Controller beinhaltet die Methoden die für den CRUD Prozess (Create/Read/Update/Delete)
gebraucht werden und diverse andere Logik. Es ist zu Beachten das für Methoden wie Create zwei Definitionen benötigt werden.
Eine um den View zu laden und die andere um die entgegen genommenen Werte in die Datenbank zu schreiben.

Create
// GET: User/Create (Methode zum laden des Views)
public ActionResult Create()
{
	return View();
}

// POST: User/Create (Methode zum Schreiben in die Datenbank)
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Id,Name")]User user)
{
	// Datenbankverbindung öffnen
	SQLiteConnection connection = DbConnect();
	using (var command = new SQLiteCommand(connection))
	{
		command.CommandText = string.Format(INSERT INTO db_User (Name,LastName) VALUES ('{0}','{1}')",user.Id,user.Name);
		command.ExecuteNonQuery();
	}
	// Datenbankverbindung trennen
	DbDisconnect(connection);
    return RedirectToAction("Index");
}
Read
// GET: User (Ausgabe aller Datensätze in der Datenbank)

public ActionResult Index()
{
	// Datenbankverbindung öffnen
	SQLiteConnection connection = DbConnect();
	// Read DB Content
	List<User> users = new List<User>();
	using (var command = new SQLiteCommand(connection))
	{
		command.CommandText = "SELECT * FROM db_User";
		using (SQLiteDataReader reader = command.ExecuteReader())
        {
        	while (reader.Read())
			{
				users.Add(new User
                {
                	Id = reader.GetInt32(0),
                 	FirstName = reader.GetString(1)
				});
			}
			reader.Close()
		}
	}
    DbDisconnect(connection);
	// Rückgabe der gelesenen Benutzer als Liste
    return View(users.ToList());
}
Update
// GET: User/Edit/5 (View laden und mit Informationen aus der Datenbank befüllen)

public ActionResult Edit(int? id)
{
	User user;
	//  Falls ID nicht vorhanden -> Error
	if (id == null)
    {
    	return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
    }
	// Datenbankverbindung öffnen
    SQLiteConnection connection = DbConnect();
    using (var command = new SQLiteCommand(connection))
    {
		command.CommandText = string.Format("SELECT * FROM db_User WHERE Id = " + id);
    	using (SQLiteDataReader reader = command.ExecuteReader())
		{
			reader.Read();
            user = new User
            {
            	Id = reader.GetInt32(0),
            	Name = reader.GetString(1)
			};
		}
	}
	// Informationen über User an den View übergeben
	return View(user)
}

// POST: User/Edit/5 (Aktualisierte Daten in Datenbank schreiben)

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "Id,Name")]User user)
{
	SQLiteConnection connection = DbConnect();
    using (var command = new SQLiteCommand(connection))
	{
		command.CommandText = string.Format("UPDATE db_User SET Name = '{1}' WHERE Id = {0}",
			user.Id,
			user.Name
		);
		command.ExecuteNonQuery();
	}
	return RedirectToAction("Index");
}

  • Keine Stichwörter