情况:
我用的datagrid,点击设计视图,上面有commandbutton,然后我添加了“编辑,更新,删除”按钮,然后做好数据绑定,数据
已经可以绑定显示出来了。问题:
当我点击“编辑”这个时候,我进行了编辑,我现在点击更新,难道必须去C#里面做下面的操作吗?这些代码都要我自己写吗?有没有更快的减少写代码的工作量,通过设置或怎样,让他自动更新?求快速设置方法,减少手写代码工作量!!
private void dgShow_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string strStudentID = e.Item.Cells[0].Text;//处于非编辑状态
string strName = ((TextBox)(e.Item.Cells[1].Controls[0])).Text;//处于编辑状态
string strPass =((TextBox)(e.Item.Cells[2].Controls[0])).Text;
string strSex = ((CheckBox)(e.Item.Cells[3].FindControl("cbSex"))).Checked?"1":"0";
string strBirthday =((TextBox)(e.Item.Cells[4].Controls[0])).Text;
string strEmail =((TextBox)(e.Item.Cells[5].Controls[0])).Text;
string strSql = "update tbStudentinfo set StudentName='"+strName+"',StudentPass='"+strPass+"'";
strSql +=",Sex="+strSex+",Birthday='"+strBirthday+"',Email='"+strEmail+"' where studentid="+strStudentID+"";
ExecuteSql(strSql);
dgShow.EditItemIndex = -1;
BindData(); }

解决方案 »

  1.   

    我不是说不通过代码控制,我的意思是,是否有办法类似与用@之类的东西,把参数传进去,难道非要写SQL语句吗?  如果大家认为不可以,请在我下面打上NO,也算帮我顶贴了,如果认为有办法,就帮写一下建议
      

  2.   

    晕倒,看来也只能这样了,但是你们没发现在VS2008 webcast教程里面可以直接设置吗? 但是扩充性部分我不知道怎么弄,他直接设置就好了,好像在前台界面就可以,我这种想法也只是猜测
      

  3.   

    我只说VS 2005里的,楼主要的功能绝对不用手写代码就能搞出来,那个控件自带的,前提是只能操作单独一个表你问你啊,你现在用的DataGrid是1.X的吧?把它换为GridView吧你会用数据绑定控件,再去学习一下数据源控件,就OK了以下只给参考(注意控件的属性哦):<asp:GridView ID="Gv_news" runat="server" AutoGenerateColumns="False"//这个属性是不让控件自己生成列
            CellPadding="10" ForeColor="#333333" GridLines="None" Width="90%" DataKeyNames="ColumnID"//这个是你的表主键列名,一定要设计哦 PageSize="11" AutoGenerateEditButton="True"//这个属性是允许编辑,这就是你想要的功能了 DataSourceID="AccessDataSource1"//这个是数据源控件的ID,在下面定义 Font-Size="Larger">
            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
            <EditRowStyle BackColor="#999999" />
            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
            <PagerSettings Mode="NextPrevious" NextPageText="下一页" PreviousPageText="上一页" />
            <Columns>
                <asp:BoundField DataField="ColumnID" HeaderText="分类编号" InsertVisible="False" ReadOnly="True"//如果哪一列不想让别人更新,又想显示出来,就设为只读
                    SortExpression="ColumnID" />
                <asp:BoundField DataField="ColumnName" HeaderText="分类名称" SortExpression="ColumnName" />
            </Columns>
            <EmptyDataTemplate>
                <asp:Label ID="Label1" runat="server" Text="暂时没有相应分类,请添加!" Font-Size="12px"></asp:Label>
            </EmptyDataTemplate>
        </asp:GridView>
        <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/kjl.mdb"
            DeleteCommand="DELETE FROM [column] WHERE [ColumnID] = ?" InsertCommand="INSERT INTO [column] ([ColumnID], [ColumnName]) VALUES (?, ?)"
            SelectCommand="SELECT [ColumnID], [ColumnName] FROM [column] ORDER BY [ColumnID] ASC"
            UpdateCommand="UPDATE [column] SET [ColumnName] = ? WHERE [ColumnID] = ?">
            <DeleteParameters>
                <asp:Parameter Name="ColumnID" Type="Int32" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="ColumnName" Type="String" />
                <asp:Parameter Name="ColumnID" Type="Int32" />
            </UpdateParameters>
            <InsertParameters>
                <asp:Parameter Name="ColumnID" Type="Int32" />
                <asp:Parameter Name="ColumnName" Type="String" />
            </InsertParameters>
        </asp:AccessDataSource>//这个就是数据源控件,我现在是连接到ACCESS数据库的,你在配置它时,选择高级功能,然后把生成插入,修改,删除代码,确定后它就会出现上面的代码了