1

我有一个带有 MS Access 数据库数据源的 GridView。这是

SELECT * FROM [TODO] ORDER BY [Name]

更新查询是

UPDATE [TODO] SET [Staff] = CInt(@Staff), [Title] = @Title, [Deadline] = @Deadline, [Status] = CInt(@Status) WHERE [todoID] = @ID

返回的两个值是另一个表的外键(整数) - Status 和 Staff 所以我用 DropDownLists 替换了两个 EditItemTemplates,为它们分配了其他 DataSources 并将所选索引绑定到外键。

这导致 GridView 生成此 HTML:

<select name="ctl00$ContentPlaceHolder1$GridView1$ctl02$DropDownList1" id="ContentPlaceHolder1_GridView1_DropDownList1_0">
                <option value="1">John Doe</option>
                <option value="2">William Jenkins</option>
                <option value="3">Kate Piper</option>
                <option selected="selected" value="4">Alison Fisher</option>

</select>

这会在更新记录时导致以下 ASP.NET 错误

异常详细信息:System.Data.OleDb.OleDbException:无效使用 Null

我还尝试不在查询中强制转换值 - 仍然没有成功,但抛出了另一个错误:

从“DBNull”类型到“Integer”类型的转换无效。

我是 ASP.NET 的新手,我所有的经验都是基于其他语言的。我将非常感谢任何帮助

4

0 回答 0