using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Data; using System.Data.SQLite; using System.Runtime.CompilerServices; using System.Windows; namespace AddDataToTable { public partial class MainWindow : Window, INotifyPropertyChanged { public MainWindow() { InitializeComponent(); CreateTable(); DataContext = this; } private DataRowView selectedUser; public DataRowView SelectedUser { get { return selectedUser; } set { if (selectedUser != value) { selectedUser = value; OnPropertyChanged("SelectedUser"); } } } private void Button_Click(object sender, RoutedEventArgs e) { SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite"); m_dbConnection.Open(); int userid = Convert.ToInt32(((DataRowView)dg.SelectedItem).Row["Id"]); string mydeger = ((DataRowView)dg.SelectedItem).Row["Deger"].ToString(); User u = new User(); u.Id = userid; u.Deger = mydeger; MessageBox.Show(userid.ToString()); EditUser(u); SQLiteCommand sqlCom = new SQLiteCommand("Select * From MyData", m_dbConnection); SQLiteDataAdapter sda = new SQLiteDataAdapter(sqlCom); DataTable dt = new DataTable(); sda.Fill(dt); if (dt.Rows.Count > 0) { dg1.ItemsSource = dt.DefaultView; } m_dbConnection.Close(); } private int EditUser(User user) { const string query = "UPDATE MyData SET Deger = @Deger WHERE Id = @id"; var args = new Dictionary { {"@id", user.Id}, {"@Deger", user.Deger} }; return ExecuteWrite(query, args); } private int AddUser(User user) { const string query = "INSERT INTO MyData(Name,Deger) VALUES(@Name, @Deger)"; var args = new Dictionary { {"@Name", user.Name}, {"@Deger", user.Deger}, }; return ExecuteWrite(query, args); } private int ExecuteWrite(string query, Dictionary args) { int numberOfRowsAffected; using (var con = new SQLiteConnection("Data Source=MyDatabase.sqlite")) { con.Open(); using (var cmd = new SQLiteCommand(query, con)) { foreach (var pair in args) { cmd.Parameters.AddWithValue(pair.Key, pair.Value); } numberOfRowsAffected = cmd.ExecuteNonQuery(); } return numberOfRowsAffected; } } public void CreateTable() { SQLiteConnection.CreateFile("MyDatabase.sqlite"); SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite"); m_dbConnection.Open(); string sql = "create table MyData ( Id INTEGER PRIMARY KEY AUTOINCREMENT, Name varchar(20),Deger varchar(20) ) "; SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection); command.ExecuteNonQuery(); ObservableCollection users = new ObservableCollection(); users.Add(new User() { Name = "user1", Deger = "1" }); users.Add(new User() { Name = "user2", Deger = "23" }); users.Add(new User() { Name = "user3", Deger = "2" }); foreach (var user in users) { AddUser(user); } SQLiteCommand sqlCom = new SQLiteCommand("Select * From MyData", m_dbConnection); SQLiteDataAdapter sda = new SQLiteDataAdapter(sqlCom); DataTable dt = new DataTable(); sda.Fill(dt); if (dt.Rows.Count > 0) { dg.ItemsSource = dt.DefaultView; } m_dbConnection.Close(); } public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged([CallerMemberName] string name = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } } public class User { public int Id { get; set; } public string Name { get; set; } public string Deger { get; set; } } }