Hej! Svaret är faktiskt rätt enkelt. Du får ett bra fel som säger varför det blir fel. Eller ibland kan det räcka med att du skriver: rst.(0).Value för att få det att fungera. Pelle J. Nu har jag fått ett annat problem.. Du verkar inte lägga till dina listitems till din listview. Lägger du till din listview på formen?Listview problem
Jag skall fylla en listview med hjälp av en SQLdatareader
Här är min kod:
<code>
string ConnectionString="Integrated Security=SSPI;Persist Security Info=False;Initial
Catalog=DVDFilmer;Data Source=TYRONNE;";
string SQL ="Select * from Film";
SqlConnection con = new SqlConnection(ConnectionString);
SqlCommand cmd = new SqlCommand(SQL,con);
con.Open();
SqlDataReader rst;
rst = cmd.ExecuteReader();
while (rst.Read())
{
ListViewItem item1 = new ListViewItem(rst.GetString(0),0);
item1.SubItems.Add( rst.GetString(1));
item1.SubItems.Add( rst.GetString(2));
}
con.Close();
</code>
men jag får ett fel på
ListViewItem item1 = new ListViewItem(rst.GetString(0),0);
meddelande lyder
"Specified cast is not vaild".
är det någon som har några tips
/phinalaSv: Listview problem
Den kan inte ändra typ säger den. Alltså kasta om något till en String "getString(0)"
GetStrign ger bara en stärng, den konverter inte någon int till en string utan datan i readern måste redan vara en text sträng. du kan typ göra så här istället för att få konvertering.
rst[0].ToString();
Mvh JohanSv: Listview problem
Sv: Listview problem
Ibland? det är väl inte så smart om det bara går ibland ;-) skoja.
Visst, fock returnerar Value bara object viket kan komma och kräva casting oxå.
mvh JohanSv: Listview problem
Jag får inga värden i min listview..
Koden ser nu u så här
<code>
private void List_Films()
{
ListView listView1 = new ListView();
string ConnectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DVDFilmer;Data Source=TYRONNE;";
string SQL ="Select * from Filmer";
SqlConnection con = new SqlConnection(ConnectionString);
SqlCommand cmd = new SqlCommand(SQL,con);
con.Open();
SqlDataReader rst;
rst = cmd.ExecuteReader();
while (rst.Read())
{
ListViewItem item1 = new ListViewItem(rst[0].ToString(),0);
item1.SubItems.Add(rst.GetString(1));
item1.SubItems.Add(rst.GetString(2));
item1.SubItems.Add(rst.GetString(4));
}
con.Close();
}
</code>
I egenskaperna för listviewn har jag satt
view = Detail
I Colums Collection har jag definerat kolumnerna.
Vad gör jag för fel?
/phinalaSv: Listview problem
Din kod verkar inte riktigt fullständig...
Kolla på http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemWindowsFormsListViewClassItemsTopic.asp?frame=true
...
while (rst.Read())
{
ListViewItem item1 = new ListViewItem(rst[0].ToString(),0);
item1.SubItems.Add(rst.GetString(1));
item1.SubItems.Add(rst.GetString(2));
item1.SubItems.Add(rst.GetString(4));
listView1.Items.Add(item1);
}
...