• Как сохранять изменения в базе при вводе данных в строке DataGrid?

    @snuffi
    Подписывайся на событие об изменении коллекции

    private void DataGrid_Loaded(object sender, RoutedEventArgs e)
    {
    var dg = (DataGrid)sender;
    if (dg == null || dg.ItemsSource == null) return;

    var sourceCollection = dg.ItemsSource as ObservableCollection;
    if (sourceCollection == null) return;

    sourceCollection .CollectionChanged +=
    new NotifyCollectionChangedEventHandler(DataGrid_CollectionChanged);
    }

    void DataGrid_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
    {
    //здесь пишешь в базу
    }
    Ответ написан
    Комментировать
  • Есть ли альтернатива DataSet в c# для вычисляемых полей?

    @snuffi
    пользуйтесь классами вместо DataSet, и вычисляйте внутри классов все что угодно
    Ответ написан
    Комментировать
  • Как преобразовать JSON в UML посредством C#?

    @snuffi
    вот хорошая библиотека json.codeplex.com
    ее api: james.newtonking.com/json/help/index.html

    пример использования:
    Product product = new Product();
    product.ExpiryDate = new DateTime(2008, 12, 28);

    JsonSerializer serializer = new JsonSerializer();
    serializer.Converters.Add(new JavaScriptDateTimeConverter());
    serializer.NullValueHandling = NullValueHandling.Ignore;

    using (StreamWriter sw = new StreamWriter(@"c:\json.txt"))
    using (JsonWriter writer = new JsonTextWriter(sw))
    {
    serializer.Serialize(writer, product);
    // {"ExpiryDate":new Date(1230375600000),"Price":0}
    }
    Ответ написан
    Комментировать
  • Как изменить привязанную коллекцию через RadGrid Telerik?

    @snuffi
    После окончания редактирования нужно новые данные записать в источник, т.е. в вашем случае отправить измененный объект в вашу библиотеку, чтобы в ней были обновленные данные:

    private void radGridView_RowEditEnded( object sender, Telerik.Windows.Controls.GridViewRowEditEndedEventArgs e )
    {
    Employee newEmployee = e.NewData as Employee;
    if ( newEmployee != null )
    {
    // отправляем в библиотеку на сохранение
    }
    }
    Ответ написан
    Комментировать
  • Как программно указать БД в качестве источника данных для DataGridView?

    @snuffi
    private void Form1_Load(object sender, System.EventArgs e)
    {
    // Bind the DataGridView to the BindingSource
    // and load the data from the database.
    dataGridView1.DataSource = bindingSource1;
    GetData("select * from Customers");
    }

    private void GetData(string selectCommand)
    {
    try
    {
    // Specify a connection string. Replace the given value with a
    // valid connection string for a Northwind SQL Server sample
    // database accessible to your system.
    String connectionString =
    "Integrated Security=SSPI;Persist Security Info=False;" +
    "Initial Catalog=Northwind;Data Source=localhost";

    // Create a new data adapter based on the specified query.
    dataAdapter = new SqlDataAdapter(selectCommand, connectionString);

    // Create a command builder to generate SQL update, insert, and
    // delete commands based on selectCommand. These are used to
    // update the database.
    SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);

    // Populate a new data table and bind it to the BindingSource.
    DataTable table = new DataTable();
    table.Locale = System.Globalization.CultureInfo.InvariantCulture;
    dataAdapter.Fill(table);
    bindingSource1.DataSource = table;

    // Resize the DataGridView columns to fit the newly loaded content.
    dataGridView1.AutoResizeColumns(
    DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
    }
    catch (SqlException)
    {
    MessageBox.Show("To run this example, replace the value of the " +
    "connectionString variable with a connection string that is " +
    "valid for your system.");
    }
    }
    Ответ написан
    Комментировать