我有一个带有来自MS Access数据库的数据源的GridView。 它是
SELECT * FROM [TODO] ORDER BY [Name]
UPDATE查询
更新[TODO] SET [Staff] = CInt(@Staff),[Title] = @Title,[截止日期] = @Deadline,[Status] = CInt(@Status)WHERE [todoID] = @ID
其中两个返回值是另一个表的外键(整数) - Status和Staff 所以我用DropDownLists替换了两个EditItemTemplates,为它们分配了其他DataSource并将所选索引绑定到外键。
这导致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:无效的使用 空
我也尝试过不在查询中转换值 - 仍然没有成功,但抛出了另一个错误:
从“DBNull”类型转换为“Integer”类型无效。
我是ASP.NET的新手,我的所有经验都基于其他语言。我真的很感激任何帮助