Ich versuche, ich habe einen Blick BisherSeach Box einen Tisch ado.net
ein Suchfeld Funktion durch ADO.NET zu ziehen:
@using (Html.BeginForm())
{
<p>
Find Pokemon: @Html.TextBox("searchKey")
<input type="submit" value="Search" />
</p>
}
@foreach (var item in Model){...
, das funktioniert. Dann habe ich den Controller:
public ActionResult NoEF(string searchKey)
{
Pokemon poke = new Pokemon();
poke.Search(searchKey);
//poke.Search(poke.Poke_Name, poke.Poke_Color);
return View(poke);
}
, die angeblich auf die Pokemon.cs Datei zu umleiten. Es hat eine Klasse, die angenommen hat, mit der Datenbank verbinden, eine Abfrage durchführt und dann die Informationen über das ist eingegeben in das Suchfeld wie so basierend anzuzeigen:
public List<Pokemon> Search(string searchKey)
{
List<Pokemon> pokemons = new List<Pokemon>();
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0; AttachDbFilename = 'C:\Users\Pokedatabase.mdf'; Integrated Security = True");
//Default order by name
string query = "SELECT Pokemon.*, Poketype.* FROM Pokemon INNER JOIN" +
" Poketype ON Pokemon.P_Type = Poketype.Type_Id" +
" Where Pokemon.Poke_Name = '"+ searchKey + "' || Poke_Color = '"+ searchKey + "' order by Poke_Name";
//Opens up a connection to the database
con.Open();
Mein Problem ist, dass nach dem Öffnen eine Verbindung, ich bin Ich bin mir nicht sicher, was ich da hineinlegen soll. Ich habe überall gegoogelt. Und bisher bin ich mit einem YOLO-Code, der offensichtlich nicht funktioniert:
using (SqlCommand cmd = new SqlCommand(query, con))
{
//Creates a data reader object and supplies it with data
SqlDataReader dr = cmd.ExecuteReader();
try
{
con.Open();
while (dr.Read())
{
dr = dr(dr.GetValue(0) + " - " + dr.GetValue(1) + " - " + dr.GetValue(2));
}
dr.Close();
cmd.Dispose();
con.Close();
}
catch (Exception ex)
{
MessageBox.Show("Can not open connection ! ");
}
}
return pokemons;
}
Irgendwelche Vorschläge zu Verbesserungen auf das? Ich bin total verloren.
Was Sieht Ihre 'Pokemon' Klasse aus? Welche Eigenschaften möchten Sie in Ihrer Datenbank festlegen? – Tim
'öffentliche Teilklasse Pokemon { public int Poke_Id {get; einstellen; } öffentliche Zeichenfolge Poke_Name {get; einstellen; } öffentliche Zeichenfolge Poke_Color {get; einstellen; } public int Poke_Hp {bekommen; einstellen; } public int P_Typ {erhalten; einstellen; } öffentlicher virtueller Poketype Poketype {get; einstellen; } ' – Rinn
Mit ADO.NET müssen Sie alle Ihre Eigenschaften aus dem' SqlDataReader' selbst setzen. 'Poke_Name = dr [" Poke_Name "];' und so weiter. – Tim