Buon giorno a tutti,
sto provando a collegare due combobox in cascata (la seconda filtrata in base alla scelta effettuata sulla prima ma in esecuzione mi da il seguente messaggio di errore evidenziato sull'evento SelectedIndexChaned della cboCasaAutomobilistica.
System.FormatException: 'Formato della stringa di input non corretto.'
LE TABELLE SONO:
1) CaseAutomobilistiche
PKcasaAutomobilisticoa INT, NOT NULL, CHIAVE PRIMARIA
descrizione VARCHAR(50) NULL
2) ModelliAuto
PKmodello NT, NOT NULL, CHIAVE PRIMARIA
FKcasaAutomobilistica INT) NULL
modello VARCHAR(50) NULL
Il codice utilizzato è il seguente:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace ANC
{
public partial class Form1 : Form
{
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=N:\ANC\ANC\Voontariato.mdf;Integrated Security=True");
DataRow dr;
public Form1()
{
InitializeComponent();
aggiornaDati();
}
public void aggiornaDati()
{
con.Open();
SqlCommand cmd = new SqlCommand("select * from CaseAutomobilistiche order by descrizione", con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
con.Close();
dr = dt.NewRow();
dt.Rows.InsertAt(dr, 0);
cboCasaAutomobilistica.ValueMember = "PKcasaAutomobilistica";
cboCasaAutomobilistica.DisplayMember = "descrizione";
cboCasaAutomobilistica.DataSource = dt;
}
private void cboCasaAutomobilistica_SelectedIndexChanged(object sender, EventArgs e)
{
if(cboCasaAutomobilistica.SelectedValue.ToString() != null)
{
int PKcasaAutomobilistica = Convert.ToInt32(cboCasaAutomobilistica.SelectedValue.ToString()); QUI MI DA L'ERRORE
aggiornaModelli(PKcasaAutomobilistica);
}
}
public void aggiornaModelli(int PKcasaAutomobilistica)
{
con.Open();
SqlCommand cmd = new SqlCommand("select * from ModelliAuto where FKCasaAutomobilistica = @PkCasaAutomobilistica order by modello", con);
cmd.Parameters.AddWithValue("PKcasaAutomobilistica", PKcasaAutomobilistica);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
con.Close();
dr = dt.NewRow();
dt.Rows.InsertAt(dr, 0);
cboModello.ValueMember = "PKmodello";
cboModello.DisplayMember = "modello";
cboModello.DataSource = dt;
}
}
}
Non riesco a venirne a capo....... Grazie a tutti !!!!!!