0

在使用 Windows Azure 的 c# 中开发 Metro 应用程序,我有 2 个问题。我能够插入新项目,但每次运行代码时都会出现错误:

“'system.nullreferenceexception' 类型的异常发生在用户代码中,但未在用户代码中处理。附加信息对象引用未设置为对象实例。”

尽管我得到了该项目保存在 Azure 中的错误。

TodoItem 类:

public class TodoItem
{
    public int Id { get; set; }

    [DataMember(Name = "Name")]
    public string Text { get; set; }

    [DataMember(Name = "Private")]
    public bool Private { get; set; }

    [DataMember(Name = "FirstTeam")]
    public string Team1 { get; set; }

    [DataMember(Name = "SecondTeam")]
    public string Team2 { get; set; }

    [DataMember(Name = "FirstBet")]
    public int Bet1 { get; set; }

    [DataMember(Name = "SecondBet")]
    public int Bet2 { get; set; }

    [DataMember(Name = "FirstPlayer")]
    public string FirstPlayerName { get; set; }

    [DataMember(Name = "FirstPlayerBet1")]
    public int FirstPlayerPronostiek1 { get; set; }

    [DataMember(Name = "FirstPlayerBet2")]
    public int FirstPlayerPronostiek2 { get; set; }
}

主页:

    private async void InsertTodoItem(TodoItem todoItem)
    {
        await todoTable.InsertAsync(todoItem);
        items.Add(todoItem);
    }

点击事件:

        var todoItem = new TodoItem { Text = TitelName.Text, Team1 = TeamA.Text, Team2 = TeamB.Text, Bet1 = int.Parse(ScoreTeamA.Text), Bet2 = int.Parse(ScoreTeamB.Text) };
        InsertTodoItem(todoItem);

我遇到的第二个问题:在我的第二页上,我想更新一个特定的行(将数据添加到剩余的列)。所以我正在寻找该行的 Id 并插入数据。但是我的代码不起作用。有任何想法吗?

点击事件:

        var todoItem = new TodoItem {FirstPlayerName = TeamA.Text, FirstPlayerPronostiek1 = int.Parse(ScoreTeamA.Text), FirstPlayerPronostiek2 = int.Parse(ScoreTeamB.Text) };
        InsertTodoItem(todoItem);

插入:

    private async void InsertTodoItem(TodoItem todoItem)
    {

        await todoTable.Where(todoItem => todoItem.Id == int.Parse(TeamA.Text)).InsertAsync(todoItem);
        items.Add(todoItem);
       //TeamA.Text = Id from the row I want to Update

    }
4

1 回答 1

1

当您拥有现有项目时,您不想再次插入,而是更新!它是任何数据驱动应用程序中的一般概念。

要更新项目,请检查此 SO 问题及其答案

于 2013-05-28T16:40:49.530 回答