Witam,
Tak jak w temacie. Mam kłopot ponieważ napisałem sobie prostą aplikacje która wykorzystuje bazę danych w której jest tabela Countries.
Za pomocą kwerendy przed uruchomieniem mogę modyfikować dane i bezproblemowo je odczytać. Natomiast dane wprowadzane przeze mnie podczas trwania aplikacji są zapamiętywane tylko na czas jej działania, a później ich już nie ma.
Kod Xaml:
<Window.Resources>
<local:ConferenceDataBaseDataSet x:Key="ConferenceDataSet"/>
<CollectionViewSource x:Key="countryViewSource" Source="{Binding Countries,Source={StaticResource ConferenceDataSet}}"/>
</Window.Resources>
<Grid DataContext="{StaticResource countryViewSource}">
<TextBox x:Name="dataTextBox" HorizontalAlignment="Left" Height="23" Margin="32,39,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
<Button Content="Button" HorizontalAlignment="Left" Margin="174,39,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
<ListBox x:Name="dataListBox" HorizontalAlignment="Left" Height="100" Margin="32,105,0,0" VerticalAlignment="Top" Width="217"/>
</Grid>
Kod C#
SqlConnection connection;
string connectionString;
public MainWindow()
{
InitializeComponent();
connectionString = ConfigurationManager.ConnectionStrings["MUNDatabase.Properties.Settings.ConferenceDataBaseConnectionString"].ConnectionString;
}
public void PopulateCountries()
{
using (connection = new SqlConnection(connectionString))
using(SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Countries",connection))
{
DataTable countryTable = new DataTable();
adapter.Fill(countryTable);
dataListBox.SelectedValuePath = "Id";
dataListBox.DisplayMemberPath = "Name";
dataListBox.ItemsSource = countryTable.DefaultView;
}
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
PopulateCountries();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
string query = "INSERT INTO Countries VALUES (0,0,0,@CountryName)";
using(connection = new SqlConnection(connectionString))
using (SqlCommand command = new SqlCommand(query, connection))
{
connection.Open();
command.Parameters.AddWithValue("@CountryName", dataTextBox.Text);
command.ExecuteScalar();
connection.Close();
}
PopulateCountries();
}
Dodam tylko ,że posiłkowałem się tym poradnikiem:
Odwzorowałem chyba wszystko więc nie mam pojęcia czemu ta baza nie zapamiętuje moich poleceń...