asp.net的web的gridview使用技巧

自动生成语句

在使用来自表或视图的页的功能时,如果想使用其自带的增删改功能按钮并使用其自动生成语句功能可以点页面中的高级勾选insert,update,delete,想要使用其功能必须选定表中所有的主键,需要特别注意。

指定sql语句

在使用指定sql语句编写时可以使用自动生成语句先生部分成语句然后复制修改即可,页面会自动生成其参数化语句需要的参数化语句。下面给出示例代码。

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:LMSConnectionString %>
" SelectCommand="SELECT [FcrNum], [FcrSend], [FcrAccept], [FcrFillingtime], [FcrState], [Fcr_ID] FROM [Logistics_Fcr]" 
DeleteCommand="DELETE FROM [Logistics_Fcr] WHERE [Fcr_ID] = @Fcr_ID"
 InsertCommand="INSERT INTO [Logistics_Fcr] ([FcrNum], [FcrSend], [FcrAccept], [FcrFillingtime], [FcrState], [Fcr_ID]) VALUES (@FcrNum, @FcrSend, @FcrAccept, @FcrFillingtime, @FcrState, @Fcr_ID)" 
 UpdateCommand="UPDATE [Logistics_Fcr] SET [FcrNum] = @FcrNum, [FcrSend] = @FcrSend, [FcrAccept] = @FcrAccept, [FcrFillingtime] = @FcrFillingtime, [FcrState] = @FcrState WHERE [Fcr_ID] = @Fcr_ID"
                >
            <DeleteParameters>
                <asp:Parameter Name="Fcr_ID" Type="Int32" />
            </DeleteParameters>
            <InsertParameters>                                
                <asp:Parameter Name="FcrNum" Type="String" />
                <asp:Parameter Name="FcrSend" Type="Int32" />
                <asp:Parameter Name="FcrAccept" Type="Int32" />
                <asp:Parameter Name="FcrFillingtime" Type="String" />
                <asp:Parameter Name="FcrState" Type="String" />                
                <asp:Parameter Name="Fcr_ID" Type="Int32" />                
            </InsertParameters>
            <UpdateParameters>
                <asp:Parameter Name="FcrNum" Type="String" />
                <asp:Parameter Name="FcrSend" Type="Int32" />
                <asp:Parameter Name="FcrAccept" Type="Int32" />
                <asp:Parameter Name="FcrFillingtime" Type="String" />                
                <asp:Parameter Name="FcrState" Type="String" />                
                <asp:Parameter Name="Fcr_ID" Type="Int32" />               
            </UpdateParameters>
        </asp:SqlDataSource>

多表情况

可以通过调用数据源的增删改查命令实现多表情况增删改查
下面给出示例代码

            string fcrid= GridView1.Rows[GridView1.SelectedRow.RowIndex].Cells[1].Text;   //选择选定所在行所在列的文本数据
            string roadid= GridView1.Rows[GridView1.SelectedRow.RowIndex].Cells[2].Text;  //选择选定所在行所在列的文本数据
            SqlDataSource1.DeleteCommand = "DELETE FROM [LMS].[dbo].[Logistics_Fcr]      WHERE Fcr_ID =" + fcrid;
            SqlDataSource1.Delete();
            SqlDataSource1.DeleteCommand = "delete from Logistics_RoadInfo where RoadInfo_ID=" + roadid;
            SqlDataSource1.Delete();

无论是否有级联主外键或者多少个表都可以方便的实现增删改查。

在查询数据多变时需要注意的事项

例以下代码

            //实现模糊查询
            string fcrnum = TextBox1.Text;           //需要模糊查询的字段
            string sel= "select * from [LMS].[dbo].[Logistics_Fcr] where Fcrnum like '%"+fcrnum+"%'";
            string lm = @"Data Source =LAPTOP-9TE9OJAD\SQLEXPRESS; Initial Catalog = LMS; Integrated Security = True";
            SqlConnection con = new SqlConnection(lm);
            SqlCommand cm = new SqlCommand(sel, con);            
            SqlDataAdapter da = new SqlDataAdapter();           //数据源适配器
            da.SelectCommand = cm;
            DataSet ds = new DataSet();               //数据集
            
            int i =da.Fill(ds,"s");               //执行查询并装入数据集中的s表,i为返回的受影响的行数
            GridView1.DataSource = ds.Tables[0];           //指定数据源
            GridView1.DataBind();              //绑定

以上代码将会实现对数据库的模糊查询并保存在数据集中并显示在Gridview上,但是前台的gridview有时并不会显示数据,此时需将 AutoGenerateColumns设置为true
另外,以上的部分代码也可改为

da.Fill();
GridView1.DataSource = ds;

存储过程

后台代码

              string sql = SqlDataSource1.ConnectionString;
              string tsql = "delectdriver";          //指定存储过程名字
              SqlConnection con = new SqlConnection(sql);
              SqlCommand com = new SqlCommand(tsql,con);
              com.CommandType = System.Data.CommandType.StoredProcedure;  //指定为存储过程
              //逐一添加存储过程参数
              com.Parameters.Add("@driverid", System.Data.SqlDbType.Int).Value=int.Parse(GridView1.DataKeys[i].Value.ToString());
              con.Open();
              com.ExecuteNonQuery(); //执行
              com.Parameters.Clear();
              con.Close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值