Witajcie.
Od nie dawna bawię się z WPF. Próbuję zrobić formularz , który wypełniałby odpowiednią tabelę w bazie danych. W moim formularzu mam 2 comboboxy , które wypełniane są danymi z innej tabeli z bazy. O ile z wypełnieniem comboboxa danymi nie mam problemów to z dodaniem tego do bazy już tak...
<StackPanel HorizontalAlignment="Right" Height="625" Margin="0,65,0,0" VerticalAlignment="Top" Width="492">
<Label x:Name="lbl1" Margin="0,0,350,0" Visibility="Hidden"/>
<Label Content="Kod ID" Margin="30,40,0,0"/>
<Label Content="Nazwa produktu" Margin="30,20,0,0" />
<TextBox x:Name="tbNazwa" Width="250" Height="22" Margin="150,-30,0,0"/>
<Label Content="Producent" Margin="30,20,0,0"/>
<TextBox x:Name="tbProducent" Width="250" Height="22" Margin="150,-30,0,0"/>
<Label Content="Grupa towarowa" Margin="30,20,0,0"/>
<ComboBox x:Name="cbGrupa" Height="22" Width="250" Margin="150,-30,0,0" ItemsSource="{Binding}"/>
<Label Content="Dostawca" Margin="30,20,0,0"/>
<ComboBox x:Name="cbDostawca" Height="22" Width="250" Margin="150,-30,0,0" ItemsSource="{Binding}" />
<Button x:Name="btnDodaj" Height="30" Width="200" Content="Dodaj do bazy" Margin="0,-30,30,0" HorizontalAlignment="Right" Click="btnDodaj_Click"/>
</StackPanel>
Uzupełnianie comboboxa.
public void Dostawca(ComboBox cbDostawca)
{
polaczenie.Open();
SqlCommand cmd = new SqlCommand("SELECT ID,Nazwa FROM dostawca", polaczenie);
SqlDataAdapter Da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
Da.Fill(ds,"dostawca");
cbDostawca.ItemsSource = ds.Tables[0].DefaultView;
cbDostawca.DisplayMemberPath = ds.Tables[0].Columns["Nazwa"].ToString();
cbDostawca.SelectedValuePath = ds.Tables[0].Columns["ID"].ToString();
polaczenie.Close();
}
Dodawanie do bazy :
private void btnDodaj_Click(object sender, RoutedEventArgs e)
{
try
{
polaczenie.Open();
SqlCommand dodajdane = new SqlCommand("INSERT INTO produkt_dane values (@ID,@Nazwa, @Producent,@DostawcaID,@GrupaID)", polaczenie);
dodajdane.Parameters.AddWithValue("@ID", tbID.Text);
dodajdane.Parameters.AddWithValue("@Nazwa", tbNazwa.Text);
dodajdane.Parameters.AddWithValue("@Producent", tbProducent.Text);
dodajdane.Parameters.AddWithValue("@DostawcaID", cbDostawca.SelectedValuePath);
dodajdane.Parameters.AddWithValue("@GrupaID", cbGrupa.SelectedValuePath);
dodajdane.ExecuteNonQuery();
}
catch (SqlException wyjatek)
{
MessageBox.Show(wyjatek.ToString());
}
finally
{
polaczenie.Close();
}
}
Błąd , który mi wyrzuca to :
Conversion failed when converting the nvarchar value 'ID' to data type ine