【问题标题】:Unable to Delete data from data grid view无法从数据网格视图中删除数据
【发布时间】:2012-07-31 03:59:11
【问题描述】:

我遇到了一个问题,当用户从数据网格视图中选择 id 并单击“删除”按钮时,错误提示我们如下:“输入字符串格式不正确”。

下面是代码,让你们更好地理解代码。

private void btnDel_Click(object sender, EventArgs e)
    {
        using (satsEntities Setupctx = new satsEntities())
        {
            int ID = Int32.Parse(lblID.Text);
            var DeleteSL = (from delLS in Setupctx.locationstations
                           where delLS.locationstationID == ID
                           select delLS).Single();
            Setupctx.DeleteObject(DeleteSL);
            Setupctx.SaveChanges();
            this.Delete_LS_Load(null, EventArgs.Empty);
            MessageBox.Show("Selected Location Station Has Been Deleted.");
        }
    }

【问题讨论】:

  • 你能不能设置一个断点来找出是哪一行给出了错误?
  • 确保lblID.Text里面有一个数值

标签: c# linq datagridview


【解决方案1】:

您收到此异常“输入字符串的格式不正确。” on

int ID = Int32.Parse(lblID.Text);

您的lblID.Text 包含一些无法转换为数字的东西。可能是包含字符和数字的东西。

尝试使用int.TryParse 看看是否可以将文本转换为数字。

int ID;
if(!int.TryParse(lblID.Text, out ID))
{
   Console.WriteLine("Invalid Number in lblID.Text");
}

【讨论】:

  • 但我的 linq 查询指出“其中 delLS.locationstationID == ID”意味着它里面只有整数。
  • @user15536​​50,它不是 LINQ 查询,您在解析为 Int 时遇到了异常
  • 错误转移到 LINQ 查询部分,指出 Sequence 包含多个元素。
  • @user15536​​50,现在这是一个不同的错误,那是因为您使用的是Single(),如果您只期望结果集中的单个结果,那么您的 ID 会在数据库中重复。如果您希望 ID 重复,请使用 FirstOrDefault() 而不是 Single()
  • 关于我为这个表创建,每当用户创建表时,id 不会增加,实际上为该表创建的每个数据的创建数据的 id 都设置为 0 ?为什么会这样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-12
  • 2011-03-30
  • 1970-01-01
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多