更改数据集中的行并更新数据库

时间:2012-01-18 11:35:04

标签: c# database dataset edit

我需要制作一个可以在数据库中保存分数的应用程序。数据库的结构是NICK(string),它是主键和PTS(int)。如果玩家有NICK,已经存在于数据库中;他在上一场比赛中得到的分数应该加到与NICK相对应的PTS上。我无法编辑DataSet然后更新数据库。

我尝试将其设为MSDN节目,但我没有FindBy(...)方法。我花了两天的时间搜索答案而无法得到答案。

这是我写的代码:

private void dodajigrajbutton_Click(object sender, EventArgs e)
{
    nick = nicktextBox.Text;

    DataRow[] daneGracza = this.tFSDataSet.JIPP.Select("NICK = '" + nick + "'");
    DataTable table = new DataTable();
    table.Columns.Add("NICK", typeof(string));
    table.Columns.Add("PTS", typeof(int));

    try
    {
        int temp;

        tFSDataSet.AcceptChanges();
        if (!daneGracza[0].IsNull("NICK")) { }
        temp = (int)daneGracza[0].ItemArray[1];
        table.Rows.Add(nick, temp+points);  // there are good values here

        // here should be code editing row in data set, but i had unheld 
        //exceptions when trying to do it like 
        //daneGracza[0].ItemArray[1] = table.Rows[0];

        this.jIPPTableAdapter.Update(tFSDataSet);

    }
    catch (IndexOutOfRangeException ex)
    {
        this.jIPPTableAdapter.Insert(nick, points);
    }
    points = 0;
    this.jIPPTableAdapter.Fill(this.tFSDataSet.JIPP);
}

1 个答案:

答案 0 :(得分:0)

不确定问题是什么,但我可以回答为什么你没有FindByXXX()方法。当您创建类型化数据集时,它们由visual studio生成。您可以找到更多信息here