0

我只是想这样做,所以稍后当我将我的值保存在数据库中时,它们应该设置为 null 以防文本字段为空。

    int? DeliveryAdrID = null;
    int.TryParse(TextBoxDeliveryAdrID.Text, out DeliveryAdrID);

但是我在解析它时遇到了错误。

上述解决方案稍后应该可以将数据库中的空文本框值保存为“NULL”而不是 0。

整个解决方案:

    int parsedValue;
    int? DeliveryAdrID = int.TryParse(TextBoxDeliveryAdrID.Text, out parsedValue) ? parsedValue : (int?)null;

    int id = Convert.ToInt32(GridViewData.SelectedValue.ToString());
                var data = tf.DBTable.Where(a => a.ID == id).FirstOrDefault();
                if (data == null)
                {
                    DBTable mt = new DBTable();
                    mt.Customer = TextBoxCustomer.Text;
                    mt.Country = TextBoxCountry.Text;
                    mt.DeliveryAdrID = parsedValue;
                    tf.DBTable.AddObject(mt);
                    tf.SaveChanges();
                }
                else
                {
                    data.Customer = TextBoxCustomer.Text;
                    data.Country = TextBoxCountry.Text;
                    data.DeliveryAdrID = parsedValue;
                    tf.SaveChanges();
              }
            }
4

1 回答 1

1

你不能给一个可以为空的 int 给int.TryParse. 它必须是一个整数。您正在尝试做的事情可以这样完成:

int parsedValue;
int? DeliveryAdrID = int.TryParse(TextBoxDeliveryAdrID.Text, out parsedValue) ? parsedValue : (int?) null;
于 2014-05-20T13:50:39.787 回答