我有一个带有 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 的新手,我所有的经验都是基于其他语言的。我将非常感谢任何帮助