Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET GridView-对象引用未设置为对象的实例_Asp.net_Linq - Fatal编程技术网

ASP.NET GridView-对象引用未设置为对象的实例

ASP.NET GridView-对象引用未设置为对象的实例,asp.net,linq,Asp.net,Linq,我有一个gridview,可以编辑。这很有效。。。有点 现在我正试图用新数据更新一行 该行包含如下列: ========================= |时间|日期|项目|等| ========================= 我正在尝试将显示为“我编辑”的编辑框的内容保存为一行 我是这样做的: TextBox time=(TextBox)GridView1.Rows[e.RowIndex].FindControl(“txtTime”) --linq对象引用--.time=Convert.

我有一个gridview,可以编辑。这很有效。。。有点

现在我正试图用新数据更新一行

该行包含如下列:

=========================

|时间|日期|项目|等|

=========================

我正在尝试将显示为“我编辑”的编辑框的内容保存为一行

我是这样做的:

TextBox time=(TextBox)GridView1.Rows[e.RowIndex].FindControl(“txtTime”)

--linq对象引用--.time=Convert.ToInt32(time.Text)

但我收到一个错误。。。有人知道为什么吗

编辑:

为了澄清我的问题。。。我想了解如何获取这些
文本框的内容,如下图所示:

EDIT2:


好的,这里是确切的错误…

我不确定
5,4
17-05-2011 14:15:31
是否是
txtTime
文本框中的文本,但它们都不能转换为整数。对于第一个字段,您可能需要一些自定义字符串解析,对于第二个字段,您应该能够使用
Convert.ToDateTime(time.Text)

编辑:

好的,您的错误消息有点让人困惑,因为它说错误在
Convert.ToDouble
中,但您在问题中加入了
Convert.ToInt32
。无论如何,您有一个
NullReferenceException
,因此
linqObject
为null(因此您无法访问
time
属性),或者
time
为null(因此您无法访问
Text
属性)。也许一些空检查可以帮你解决问题

另一个编辑:

好吧,那么你真正的问题是你无法获得对
txtTime
文本框的引用。您可能需要为GridView发布一些标记,并为事件处理程序发布一些代码。以下是一些建议:

  • 如果在事件处理程序中进行调试,请检查
    e.RowIndex
    的值-确保该值对应于正确的行
  • 确保您在代码隐藏中使用的ID字符串与标记中的ID完全相同
  • 您是否正在使用任何UpdatePanel,或者GridView是否正在客户端更新
  • ViewState是否已关闭

时间不应保存为数据库中的整数。最好将其保存为数据库中的DateTime。因此,将您的--linq对象引用--.time设置为DateTime类型

然后使用以下代码将文本框字符串值转换为日期时间,使用以下代码:

using System.Globalization;

--linq-object-reference--.time=DateTime.ParseExact(time.Text,"HH:mm",  CultureInfo.InvariantCulture);

希望这能解决问题…

您如何在gridview中显示时间我是指什么格式(01:30、12:00am/pm或1.30)我认为您的时间的字符串表示不能转换为整数。日期应该不是问题,但它显示为
yyyy-MM-dd HH:MM-tt
例如DateTime。但我的时间字段表示为任务/项目花费的
小时、分钟
,无论什么…)您得到的确切错误是什么?
NullReferenceException-对象引用未设置为对象的实例。
@Line:
linqObject.time=Convert.ToDouble(time.Text)@Graham Clark:他得到的对象引用未设置为对象的实例我的问题是如何指向特定的文本框?数据验证/解析根本不是问题。但是它说它找不到名为
txtTime
的控件…对不起,这是我的错误复制。。。应该是
Convert.ToInt32