前台
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ManageCard %>" SelectCommand="" UpdateCommand=""></asp:SqlDataSource>
后台
protected void DetailsView1_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e)
{
      SqlDataSource1.UpdateCommand =“省略”;
      SqlDataSource1.Update();
}为什么还提示上面的错误啊

解决方案 »

  1.   

    ASP,或ASP的SQL命令没有正确进执行,就会出现。 UpdateCommand变量后面的SQL语句一定有问题。你需要在 asp:SqlDataSource   里提供 UpdateCommand="" 的使用语句示例
    下面的代码示例演示如何使用 ItemUpdated 事件在 DetailsView 控件执行更新操作之后刷新 GridView 控件。
    这使得 GridView 控件能够与 DetailsView 控件保持同步。<%@ Page Language="C#" %>
    <script runat="server">
      void CustomerDetail_ItemInserted(object sender, 
        DetailsViewInsertedEventArgs e)
      {
           
      }  void CustomerDetail_ItemInserting(object sender, 
        DetailsViewInsertEventArgs e)
      {
        
      }
      void CustomerDetail_ItemUpdated(object sender, 
        DetailsViewUpdatedEventArgs e)
      {
        CustomersView.DataBind();
      }  void CustomerDetail_ItemUpdating(object sender, 
        DetailsViewUpdateEventArgs e)
      {
        for (int i = 0; i < e.NewValues.Count; i++)
        {
          if (e.NewValues[i] != null)
          {
            e.NewValues[i] = Server.HtmlEncode(e.NewValues[i].ToString());
          }
        }
      }  void CustomerDetail_ItemDeleted(object sender, 
        DetailsViewDeletedEventArgs e)
      {
         CustomersView.DataBind();
      }
    </script><html>
    <body>
      <form id="Form1" runat="server">
        <h3>
          DetailsView Example</h3>
        <table cellspacing="10">
          <tr>
            <td>
              <asp:GridView ID="CustomersView" DataSourceID="Customers" 
                AutoGenerateColumns="False"
                DataKeyNames="CustomerID" runat="server">
                <HeaderStyle BackColor="Blue" ForeColor="White" />
                <Columns>
                  <asp:CommandField ShowSelectButton="True" />
                  <asp:BoundField DataField="ContactName" 
                    HeaderText="ContactName" />
                  <asp:BoundField DataField="CompanyName" 
                    HeaderText="CompanyName" />
                </Columns>
              </asp:GridView>
            </td>
            <td valign="top">
              <asp:DetailsView ID="CustomerDetail" 
                DataSourceID="Details" AutoGenerateRows="false"
                AutoGenerateInsertButton="true" 
                AutoGenerateEditButton="true" 
                AutoGenerateDeleteButton="true"
                EmptyDataText="No records." 
                DataKeyNames="CustomerID" GridLines="Both" 
                OnItemInserted="CustomerDetail_ItemInserted"
                OnItemInserting="CustomerDetail_ItemInserting" 
                OnItemUpdated="CustomerDetail_ItemUpdated"
                OnItemUpdating="CustomerDetail_ItemUpdating" 
                OnItemDeleted="CustomerDetail_ItemDeleted"
                runat="server">
                <HeaderStyle BackColor="Navy" ForeColor="White" />
                <RowStyle BackColor="White" />
                <AlternatingRowStyle BackColor="LightGray" />
                <EditRowStyle BackColor="LightCyan" />
                <Fields>
                  <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" ReadOnly="True" />
                  <asp:BoundField DataField="ContactName" HeaderText="ContactName" />
                  <asp:BoundField DataField="ContactTitle" HeaderText="ContactTitle" />
                  <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" />
                  <asp:BoundField DataField="Address" HeaderText="Address" />
                  <asp:BoundField DataField="City" HeaderText="City" />
                  <asp:BoundField DataField="Region" HeaderText="Region" />
                  <asp:BoundField DataField="PostalCode" HeaderText="PostalCode" />
                  <asp:BoundField DataField="Country" HeaderText="Country" />
                  <asp:BoundField DataField="Phone" HeaderText="Phone" />
                  <asp:BoundField DataField="Fax" HeaderText="Fax" />
                </Fields>
              </asp:DetailsView>
            </td>
          </tr>
        </table>    <asp:SqlDataSource ID="Customers" runat="server" 
          ConnectionString=
            "<%$ ConnectionStrings:NorthwindConnectionString %>"
          SelectCommand="SELECT [CompanyName], [ContactName], [CustomerID] 
            FROM [Customers]">
        </asp:SqlDataSource>    <asp:SqlDataSource ID="Details" 
          ConnectionString=
            "<%$ ConnectionStrings:NorthwindConnectionString %>"
          runat="server" 
          SelectCommand="SELECT * FROM [Customers] 
            WHERE ([CustomerID] = @CustomerID)"
          DeleteCommand="DELETE FROM [Customers] 
            WHERE [CustomerID] = @CustomerID"
          InsertCommand="INSERT INTO [Customers] ([CustomerID], 
            [CompanyName], [ContactName], [ContactTitle], [Address], 
            [City], [Region], [PostalCode], [Country], [Phone], [Fax]) 
            VALUES (@CustomerID, @CompanyName, @ContactName, @ContactTitle, 
            @Address, @City, @Region, @PostalCode, @Country, @Phone, @Fax)"
          UpdateCommand="UPDATE [Customers] SET [CompanyName] = @CompanyName, 
            [ContactName] = @ContactName, [ContactTitle] = @ContactTitle, 
            [Address] = @Address, [City] = @City, [Region] = @Region, 
            [PostalCode] = @PostalCode, [Country] = @Country, 
            [Phone] = @Phone, [Fax] = @Fax 
            WHERE [CustomerID] = @CustomerID">
          <SelectParameters>
            <asp:ControlParameter ControlID="CustomersView" 
              Name="CustomerID" PropertyName="SelectedValue"
              Type="String" />
          </SelectParameters>
          <DeleteParameters>
            <asp:Parameter Name="CustomerID" Type="String" />
          </DeleteParameters>
          <UpdateParameters>
            <asp:Parameter Name="CompanyName" Type="String" />
            <asp:Parameter Name="ContactName" Type="String" />
            <asp:Parameter Name="ContactTitle" Type="String" />
            <asp:Parameter Name="Address" Type="String" />
            <asp:Parameter Name="City" Type="String" />
            <asp:Parameter Name="Region" Type="String" />
            <asp:Parameter Name="PostalCode" Type="String" />
            <asp:Parameter Name="Country" Type="String" />
            <asp:Parameter Name="Phone" Type="String" />
            <asp:Parameter Name="Fax" Type="String" />
            <asp:Parameter Name="CustomerID" Type="String" />
          </UpdateParameters>
          <InsertParameters>
            <asp:Parameter Name="CustomerID" Type="String" />
            <asp:Parameter Name="CompanyName" Type="String" />
            <asp:Parameter Name="ContactName" Type="String" />
            <asp:Parameter Name="ContactTitle" Type="String" />
            <asp:Parameter Name="Address" Type="String" />
            <asp:Parameter Name="City" Type="String" />
            <asp:Parameter Name="Region" Type="String" />
            <asp:Parameter Name="PostalCode" Type="String" />
            <asp:Parameter Name="Country" Type="String" />
            <asp:Parameter Name="Phone" Type="String" />
            <asp:Parameter Name="Fax" Type="String" />
          </InsertParameters>
        </asp:SqlDataSource>
      </form>
    </body>
    </html>
    请注意 示例中 asp:SqlDataSource 的 UpdateCommand 的使用。
    字符太多,有些无关的地方就删除掉了。呵呵!不过UpdateCommand的示例是完整的。
      

  2.   

    你的update语句不合法。当然不行了。你写个合法的update tableName set 列名 = '' 这样就可以了。
      

  3.   

    解决方法:把前台的 UpdateCommand=""变成 UpdateCommand=" ",也就是加上一个空格就问题解决啦