想用detailsview实现 编辑 删除,新建;
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="Data Source=SWEI\SQLEXPRESS;Initial Catalog=shengwei;Persist Security Info=True;User ID=sa;Password=880827" 
            ProviderName="System.Data.SqlClient" 
            SelectCommand="SELECT [学号], [班号], [姓名], [性别], [出生日期], [政治面貌] FROM [Student] " 
            DeleteCommand="DELETE * FROM [Student] WHERE [学号]= ?" 
            InsertCommand="INSERT INTO [Student] ([学号],[班号],[姓名],[性别],[出生日期],[政治面貌]) VALUES(?,?,?,?,?,?)" 
            OldValuesParameterFormatString="original_{0}" 
            UpdateCommand="UPDATE [Student] SET[班号]= ?,[姓名]= ?,[性别]= ?,[出生日期]= ?,[政治面貌]=?,WHERE [学号]= ?">            
            <DeleteParameters>
                <asp:QueryStringParameter Name="?" QueryStringField="studentid" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:ControlParameter ControlID="DetailsView1" Name="班号" 
                    PropertyName="SelectedValue" />
                <asp:ControlParameter ControlID="DetailsView1" Name="姓名" 
                    PropertyName="SelectedValue" />
                <asp:ControlParameter ControlID="DetailsView1" Name="性别" 
                    PropertyName="SelectedValue" />
                <asp:ControlParameter ControlID="DetailsView1" Name="出生日期" 
                    PropertyName="SelectedValue" />
                <asp:ControlParameter ControlID="DetailsView1" Name="政治面貌" 
                    PropertyName="SelectedValue" />
            </UpdateParameters>
            <InsertParameters>
                <asp:ControlParameter ControlID="DetailsView1" Name="学号" 
                    PropertyName="SelectedValue" Type="String" />
                <asp:ControlParameter ControlID="DetailsView1" Name="班号" 
                    PropertyName="SelectedValue" Type="String"/>
                <asp:ControlParameter ControlID="DetailsView1" Name="姓名" 
                    PropertyName="SelectedValue" Type="String"/>
                <asp:ControlParameter ControlID="DetailsView1" Name="性别" 
                    PropertyName="SelectedValue" Type="String"/>
                <asp:ControlParameter ControlID="DetailsView1" Name="出生日期" 
                    PropertyName="SelectedValue" Type="String"/>
                <asp:ControlParameter ControlID="DetailsView1" Name="政治面貌" 
                    PropertyName="SelectedValue" Type="String"/>
            </InsertParameters>
        </asp:SqlDataSource>
 点击删除活编辑,新建错误:
'?' 附近有语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: '?' 附近有语法错误。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
[SqlException (0x80131904): '?' 附近有语法错误。]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +925466
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +800118
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +186
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1932
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +149
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +1005
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +132
   System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +149
   System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +135
   System.Web.UI.WebControls.SqlDataSourceView.ExecuteDbCommand(DbCommand command, DataSourceOperation operation) +404
   System.Web.UI.WebControls.SqlDataSourceView.ExecuteDelete(IDictionary keys, IDictionary oldValues) +720
   System.Web.UI.DataSourceView.Delete(IDictionary keys, IDictionary oldValues, DataSourceViewOperationCallback callback) +75
   System.Web.UI.WebControls.DetailsView.HandleDelete(String commandArg) +823
   System.Web.UI.WebControls.DetailsView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +535
   System.Web.UI.WebControls.DetailsView.RaisePostBackEvent(String eventArgument) +194
   System.Web.UI.WebControls.DetailsView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +177
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746 

解决方案 »

  1.   

    http://msdn.microsoft.com/zh-cn/library/ms227560(VS.80).aspx
      

  2.   

     DeleteCommand="DELETE * FROM [Student] WHERE [学号]= @[学号]" InsertCommand="INSERT INTO [Student] ([学号],[班号],[姓名],[性别],[出生日期],[政治面貌]) VALUES(@[学号],@[班号],@[姓名],@[性别],@[出生日期],@[政治面貌] )" UpdateCommand="UPDATE [Student] SET [班号]= @[班号],[姓名]= @[姓名],[性别]= @[性别],[出生日期]= @[出生日期],[政治面貌]=@[政治面貌],WHERE [学号]= @[学号]">   
      

  3.   

     我使用浏览器浏览此页面,为什么什么也看不到?
    Page Language="C#" AutoEventWireup="true" CodeFile="DemoDetailsView.aspx.cs" Inherits="DemoDetailsView" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div align="center">
            <asp:DetailsView ID="DetailsView1" runat="server" 
                AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" 
                AutoGenerateInsertButton="True" AutoGenerateRows="False" DataKeyNames="学号" 
                DataSourceID="SqlDataSource1" Height="50px" Width="100%">
                <Fields>
                    <asp:BoundField DataField="学号" HeaderText="学号" ReadOnly="True" 
                        SortExpression="学号" />
                    <asp:BoundField DataField="班号" HeaderText="班号" SortExpression="班号" />
                    <asp:BoundField DataField="姓名" HeaderText="姓名" SortExpression="姓名" />
                    <asp:BoundField DataField="性别" HeaderText="性别" SortExpression="性别" />
                    <asp:BoundField DataField="出生日期" HeaderText="出生日期" SortExpression="出生日期" />
                    <asp:BoundField DataField="政治面貌" HeaderText="政治面貌" SortExpression="政治面貌" />
                </Fields>
            </asp:DetailsView>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                ConnectionString="Data Source=SWEI\SQLEXPRESS;Initial Catalog=shengwei;User ID=sa" 
                ProviderName="System.Data.SqlClient" 
                 SelectCommand="SELECT * FROM [Student] WHERE ([学号]=@学号)" 
                DeleteCommand="DELETE * FROM [Student] WHERE [学号]= @学号" 
                InsertCommand="INSERT INTO [Student] ([学号],[班号],[姓名],[性别],[出生日期],[政治面貌]) VALUES(@学号,@班号,@姓名,@性别,@出生日期,@政治面貌)" 
                OldValuesParameterFormatString="original_{0}" 
                UpdateCommand="UPDATE [Student] SET[班号]= @班号,[姓名]= @姓名,[性别]= @性别,[出生日期]= @出生日期,[政治面貌]=@政治面貌,WHERE [学号]= @学号"
                >
                <SelectParameters>
                    <asp:QueryStringParameter Name="学号" QueryStringField="studentid" />
                </SelectParameters>
                <DeleteParameters>
                    <asp:Parameter Name="学号" />
                </DeleteParameters>
                <UpdateParameters>
                    <asp:Parameter Name="班号" />
                    <asp:Parameter Name="姓名" />
                    <asp:Parameter Name="性别" />
                    <asp:Parameter Name="出生日期" />
                    <asp:Parameter Name="政治面貌" />
                    <asp:Parameter Name="学号" />
                </UpdateParameters>
                <InsertParameters>
                    <asp:Parameter Name="学号" />
                    <asp:Parameter Name="班号" />
                    <asp:Parameter Name="姓名" />
                    <asp:Parameter Name="性别" />
                    <asp:Parameter Name="出生日期" />
                    <asp:Parameter Name="政治面貌" />
                </InsertParameters>
            </asp:SqlDataSource>
        </div>
        </form>
    </body>
    </html>
      

  4.   

    SelectCommand="SELECT * FROM [Student] WHERE ([学号]=@学号)" 
    改成:
    SelectCommand="SELECT * FROM [Student]" 
    看有数据不?
    能确保数据表中有数据?
      

  5.   

    SelectParameters那加上CancelSelectOnNullParameter="false"试试<SelectParameters> 
       <asp:QueryStringParameter CancelSelectOnNullParameter="false" Name="学号" QueryStringField="studentid" /> 
    </SelectParameters>