在ASP.net中更新formview

时间:2014-01-29 08:51:01

标签: asp.net sql-server-2008 formview

net。我正在使用Visual Studio 2010中的数据视图进行设计.GridView和DetailsView运行时没有任何问题。在FormView中,因为我正在尝试使用以下代码开发编辑模板:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>" 
        onselecting="SqlDataSource1_Selecting" SelectCommand="SELECT * FROM [student]"
        UpdateCommand="Update student set Id=@Id, Name=@Name, City=@City, Marks=@Marks where Id=@Id" >
        </asp:SqlDataSource>

我收到如下错误:

'ASP.default_aspx'不包含'SqlDataSource1_Selecting'的定义,并且没有可以找到接受类型'SqlDataSource1_Selecting'的第一个参数的扩展方法'ASP.default_aspx'(您是否缺少using指令或汇编参考?)

我该如何解决?

2 个答案:

答案 0 :(得分:1)

这是因为你定义了

  onselecting="SqlDataSource1_Selecting"

但可能在后面的代码中没有带正确签名的功能

答案 1 :(得分:1)

由于错误明确指出,您没有任何SqlDataSource1_Selecting方法(对于onselecting =“SqlDataSource1_Selecting”事件处理程序)

错误:

  

ASP.default_aspx'不包含。的定义   'sqlDataSource1_Selecting'并没有扩展方法   'sqlDataSource1_Selecting'接受第一个类型的参数   可以找到'ASP.default_aspx'(你错过了一个using指令吗?   或汇编参考?)

您的代码

 <asp:SqlDataSource ID="SqlDataSource1"
                    runat="server" 
                    ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>" 
                    onselecting="SqlDataSource1_Selecting"
                    SelectCommand="SELECT * FROM [student]"
                    UpdateCommand="Update student set Id=@Id,
                                                      Name=@Name, 
                                                      City=@City, 
                                                      Marks=@Marks
                                   where Id=@Id" >
        </asp:SqlDataSource>

问题使用代码

 onselecting="SqlDataSource1_Selecting"  there is no extension for this available

<强>更新

您的Web.config定义OleDb连接字符串(用于OleDb引擎),该字符串使用SQL Server OleDb提供程序通过OleDb连接到SQL Server。

然后,您的代码将该连接字符串传递给SqlConnection,SqlConnection使用SQL本机客户端直接连接到SQL Server,并使用完全不同的连接字符串。

您应该将Web.config更改为使用System.Data.SqlClient及其连接字符串格式。 (这比OleDb更有效)