日期:2014-05-18  浏览次数:20446 次

GridView控件的插入问题
往GridView控件中插入数据,采用了两种方法,
1   在页面添加了TextBox之类的控件,然后配置参数信息,最后使用AccessDataSource.Insert();执行插入。
2   使用DetailsView控件与GridView控件组合。

问题是,如果用户输入了违反数据库规则的数据,例如主键重复,那以上两种方法如何来进行这种检测?以提示用户。

谢谢:),给个思路也可以。

------解决方案--------------------
把Insert放到try...catch...块中是个简单办法。
也可以Insert前判断
------解决方案--------------------
http://www.asp.net/learn/dataaccess/tutorial38cs.aspx?tabid=63
------解决方案--------------------
1.
从不用 xxxDataSource 于实际项目中,不是很清楚,
据我了解,应该可以考虑在 xxxDataSource 的 Inserting 事件判断数据是否合法,
此事件在执行插入之前触发

// .aspx
<asp:AccessDataSource ID= "AccessDataSource1 " runat= "server " OnInserting= "AccessDataSource1_Inserting ">
</asp:AccessDataSource>

// .aspx.cs
protected void AccessDataSource1_Inserting(object sender, SqlDataSourceCommandEventArgs e)
{
// your code
}

2.
良好的数据库设计,主键不应该依赖用户输入的!!!!
可以选择自动生成,如Sql Server的标志列和GUID,Orcle的序列等等

Hope helpful!
------解决方案--------------------
一般是根据出错信息的反馈给用户相应的提示信息