Набор данных не фиксируется в базе данных - PullRequest
1 голос
/ 10 января 2010

Я нуб программирования. Мне нужно заполнить БД из полей текстового поля, но когда я пытаюсь затем зафиксировать ее в БД, я иду и просматриваю базу данных, и все, что я вижу, - это пустые значения ... ничего не сохраняется ... пожалуйста, помогите ..

спасибо

private void btnSubmit_Click(object sender, EventArgs e)
    {
        TradesDataSet.TradesRow newTradesRow = tradesDataSet.Trades.NewTradesRow();

        newTradesRow.ID = textBoxTradeID.Text; 
        newTradesRow.EntryPrice = textBoxEntryPrice.Text;
        newTradesRow.ExitPrice = textBoxExitPrice.Text;            

        tradesDataSet.Trades.Rows.Add(newTradesRow);
        tradesDataSet.Trades.AcceptChanges();

        try
        {

            this.Validate();
            this.tradesBindingSource.EndEdit();
            this.tradesTableAdapter.Update(this.tradesDataSet.Trades);                
            MessageBox.Show("Update successful");
        }
        catch (System.Exception ex)
        {
            MessageBox.Show("Update failed");
        }
    }        

Ответы [ 4 ]

7 голосов
/ 10 января 2010

Удалить звонок AcceptChanges. Метод Update адаптера данных просматривает изменения в базе данных и использует список изменений для обновления фактической базы данных. Он автоматически принимает изменения в DataSet после обновления. Если вы позвоните AcceptChanges на DataSet вручную перед обновлением, DataAdapter подумает, что ничего не изменилось, и ничего не сделает.

1 голос
/ 16 августа 2014

Есть еще одна возможность. Если вы добавили базу данных в свой проект и задали для ее свойства «Копировать в выходной каталог» значение «Всегда», любые изменения, внесенные в базу данных, будут отменены, поскольку новая копия заменяется старой.

Для предотвращения этого установите для этого свойства значение «Копировать, если новее» или «Не копировать»

0 голосов
/ 10 января 2010
private void btnSubmit_Click(object sender, EventArgs e) 
{ 
    TradesDataSet.TradesRow newTradesRow = tradesDataSet.Trades.NewTradesRow(); 

    newTradesRow.ID = textBoxTradeID.Text;  
    newTradesRow.EntryPrice = textBoxEntryPrice.Text; 
    newTradesRow.ExitPrice = textBoxExitPrice.Text;             

    tradesDataSet.Trades.Rows.Add(newTradesRow); 
    //Wrong, this command says that what I have in the dataset is what is in 
    //the database.  You only use this if you manually update the dataset in 
    //the background.
    //tradesDataSet.Trades.AcceptChanges(); 

    try 
    { 
        //EndEdit then force a validate.
        this.tradesBindingSource.EndEdit();
        this.Validate();  
        //Internally this method calls .AcceptChanges();
        this.tradesTableAdapter.Update(this.tradesDataSet.Trades);                 
        MessageBox.Show("Update successful"); 
    } 
    catch (System.Exception ex) 
    { 
        MessageBox.Show("Update failed"); 
    } 
}         
0 голосов
/ 10 января 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...