C# 使用asp.net插入到空数据库表中
通过使用DetailsView控件的asp.net web应用程序,我可以允许用户将行插入到SQL数据库表中。但是,如果表为空,DetailsView将在更改为插入模式时抛出错误。C# 使用asp.net插入到空数据库表中,c#,asp.net,sql,C#,Asp.net,Sql,通过使用DetailsView控件的asp.net web应用程序,我可以允许用户将行插入到SQL数据库表中。但是,如果表为空,DetailsView将在更改为插入模式时抛出错误。System.Collections.ArrayList.InsertRange(Int32索引,ICollection c)+10647211中出现错误: 说明:执行当前web请求期间发生未经处理的异常。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源 异常详细信息:System.ArgumentNul
System.Collections.ArrayList.InsertRange(Int32索引,ICollection c)+10647211中出现错误
:
说明:执行当前web请求期间发生未经处理的异常。请查看堆栈跟踪以了解更多信息
有关错误的信息及其在代码中的来源
异常详细信息:System.ArgumentNullException:集合不能为空。参数名称:c
我可以手动创建DetailsView
以插入到特定的表中,但我正在处理大量由用户动态选择的表
My Details View和GridView控件根据用户选择的表自动生成视图。我想要一个插入控件,根据用户选择的表自动生成文本框/标签
有没有办法避免为每个空表创建模板以允许插入
编辑:
我的DetailsView控件正在使用LinqDataSource,如果我尝试绑定到空表,则会出现相同的ArumingNullException错误 使用控件。如果表为空,它将允许您插入新行。我找到了自己的解决方法,这是一个丑陋的解决方案,但它可以 我添加了一些SQLDataSources,每当用户要插入空表时,这些SQLDataSources都会插入临时伪记录。存在虚拟记录允许DetailsView控件进行数据绑定,然后在不再需要时将其删除
此解决方案不适用于添加到数据库中的任何新空表。而且,即使是在很短的时间内,拥有一个临时虚拟记录的效果也不完全清楚 @DavidJBarnes我已经用错误更新了我的问题。谢谢。这个问题提到这可能是.NET的一个bug。是的,但是我不是还要为每个空表列出一个模板吗?像我的DetailsView和GridView一样,我希望FormView能够根据用户选择的表自动生成。我想我的答案是仓促的。我认为您得到的空引用异常可能是回发期间的逻辑错误。发布如何绑定到数据库表,以及是使用自定义数据访问逻辑还是ObjectDataSource/SqlDataSource?DetailsView使用LinqDataSource