佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 動(dòng)態(tài)組合SQL語(yǔ)句方式實(shí)現(xiàn)批量更新的實(shí)例

動(dòng)態(tài)組合SQL語(yǔ)句方式實(shí)現(xiàn)批量更新的實(shí)例

熱門標(biāo)簽:Linux服務(wù)器 科大訊飛語(yǔ)音識(shí)別系統(tǒng) Mysql連接數(shù)設(shè)置 電子圍欄 阿里云 服務(wù)器配置 銀行業(yè)務(wù) 團(tuán)購(gòu)網(wǎng)站

Default.aspx

復(fù)制代碼 代碼如下:

%@ Page Language="C#" AutoEventWireup="true" CodeFile="Index.aspx.cs" Inherits="Index" %>

!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>供求信息網(wǎng)審核發(fā)布信息/title>
/head>
body class="Font">
    form id="form1" runat="server">
    div style="text-align: left" align="left">asp:Panel ID="Panel2" runat="server">
        asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
            OnRowDataBound="GridView1_RowDataBound"
            OnSelectedIndexChanging="GridView1_SelectedIndexChanging" Font-Size="9pt"
            AllowPaging="True" EmptyDataText="沒(méi)有相關(guān)數(shù)據(jù)可以顯示!"
            OnPageIndexChanging="GridView1_PageIndexChanging" CellPadding="4"
            ForeColor="#333333" GridLines="None" DataKeyNames="id">
                Columns>
                     asp:TemplateField>
                                ItemTemplate>
                                    asp:CheckBox ID="cbSingleOrMore" runat="server" />
                                /ItemTemplate>
                      /asp:TemplateField>
                    asp:BoundField DataField="id" HeaderText="信息ID" />
                    asp:BoundField DataField="name" HeaderText="信息主題" />
                    asp:BoundField DataField="type" HeaderText="信息分類" />
                    asp:BoundField DataField="content" HeaderText="發(fā)布內(nèi)容" />
                    asp:BoundField DataField="userName" HeaderText="發(fā)布人" />
                    asp:BoundField DataField="lineMan" HeaderText="聯(lián)系人" />
                    asp:BoundField DataField="issueDate" HeaderText="發(fā)布時(shí)間"
                        DataFormatString="{0:d}" />
                /Columns>
                FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
                RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
                SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
                PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Right" />
                HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
                AlternatingRowStyle BackColor="White" />
            /asp:GridView>
        /asp:Panel>
                    asp:CheckBox ID="cbAll" runat="server" AutoPostBack="True"
            Font-Size="9pt" OnCheckedChanged="cbAll_CheckedChanged"
                        Text="全選/反選" />

        asp:Button ID="btnUpdateTime" runat="server" onclick="btnUpdateTime_Click"
            Text="更新發(fā)布時(shí)間" />

    /div>
    /form>
/body>
/html>

Default.aspx.cs

復(fù)制代碼 代碼如下:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using System.Text;
using System.Data.SqlClient;

public partial class Index : System.Web.UI.Page
{
    SqlConnection sqlcon;
    string strCon = ConfigurationManager.AppSettings["conStr"];
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            this.GV_DataBind();
        }

    }
    public void GV_DataBind()
    {
        string sqlstr = "select * from tb_inf";
        sqlcon = new SqlConnection(strCon);
        SqlDataAdapter da = new SqlDataAdapter(sqlstr, sqlcon);
        DataSet ds = new DataSet();
        sqlcon.Open();
        da.Fill(ds, "tb_inf");
        sqlcon.Close();
        this.GridView1.DataSource = ds;
        this.GridView1.DataKeyNames = new string[] { "id" };
        this.GridView1.DataBind();
        if (GridView1.Rows.Count > 0)
        {
            return;//有數(shù)據(jù),不要處理
        }
        else//顯示表頭并顯示沒(méi)有數(shù)據(jù)的提示信息
        {
            StrHelper.GridViewHeader(GridView1);
        }
    }
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            string gIntro = e.Row.Cells[4].Text;
            e.Row.Cells[4].Text = StrHelper.GetFirstString(gIntro, 12);
        }
    }
    protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
    {
        string id = this.GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();
        sqlcon = new SqlConnection(strCon);
        SqlCommand com = new SqlCommand("select [check] from tb_inf where id='" + id + "'", sqlcon);
        sqlcon.Open();
        string count = Convert.ToString(com.ExecuteScalar());
        if (count == "False")
        {
            count = "1";
        }
        else
        {
            count = "0";
        }
        com.CommandText = "update tb_inf set [check]=" + count + " where id=" + id;
        com.ExecuteNonQuery();
        sqlcon.Close();
        this.GV_DataBind();
    }
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        this.GridView1.PageIndex = e.NewPageIndex;
        this.GV_DataBind();
    }
    protected void cbAll_CheckedChanged(object sender, EventArgs e)
    {
        for (int i = 0; i = GridView1.Rows.Count - 1; i++)//遍歷
        {
            CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("cbSingleOrMore");
            if (cbAll.Checked == true)
            {
                cbox.Checked = true;
            }
            else
            {
                cbox.Checked = false;
            }
        }
    }

    protected void btnUpdateTime_Click(object sender, EventArgs e)
    {
        StringBuilder builder = new StringBuilder();
        int i = 0;
        foreach (GridViewRow row in this.GridView1.Rows)//循環(huán)遍歷GridView控件中行,拼裝IN子句
        {
            CheckBox cbox = row.FindControl("cbSingleOrMore") as CheckBox;
            if (cbox.Checked)//判斷復(fù)選框是否被選中
            {
                //當(dāng)數(shù)據(jù)行中的復(fù)選框被選中時(shí),即將該行記錄的主鍵值放入IN子句中
                builder.AppendFormat("'{0}',", this.GridView1.DataKeys[row.RowIndex].Value.ToString());
                i++;
                continue;
            }
            continue;
        }
        if (builder.ToString().Length == 0)//當(dāng)IN子句中沒(méi)有任何數(shù)據(jù)行,則彈出提示
        {
            StrHelper.Alert("沒(méi)有選中任何數(shù)據(jù)行,請(qǐng)重新選擇!");
            return;
        }
        //移除StringBuilder對(duì)象中的最后一個(gè)“,”
        builder.Remove(builder.ToString().LastIndexOf(","), 1);
        //拼裝SQL語(yǔ)句
        string SqlBuilderCopy = string.Format("Update tb_inf set issueDate='{0}' WHERE id IN ({1})", DateTime.Now.ToString(), builder.ToString());
        sqlcon = new SqlConnection(strCon);//創(chuàng)建數(shù)據(jù)庫(kù)連接
        SqlCommand sqlcom;//創(chuàng)建命令對(duì)象變量
        int result = 0;
        if (sqlcon.State.Equals(ConnectionState.Closed))
            sqlcon.Open();//打開數(shù)據(jù)庫(kù)連接
        sqlcom = new SqlCommand(SqlBuilderCopy, sqlcon);
        SqlTransaction tran = sqlcon.BeginTransaction();//實(shí)例化事務(wù),注意實(shí)例化事務(wù)必須在數(shù)據(jù)庫(kù)連接開啟狀態(tài)下
        sqlcom.Transaction = tran;//將命令對(duì)象與連接對(duì)象關(guān)聯(lián)
        try
        {
            result = sqlcom.ExecuteNonQuery();//接收影響的行數(shù)
            tran.Commit();//提交事務(wù)
        }
        catch (SqlException ex)
        {
            StrHelper.Alert(string.Format("SQL語(yǔ)句發(fā)生了異常,異常如下所示:\n{0}", ex.Message));
            tran.Rollback();//出現(xiàn)異常,即回滾事務(wù),防止出現(xiàn)臟數(shù)據(jù)
            return;
        }
        finally
        {
            sqlcon.Close();
        }
        if (result == i)//判斷影響行數(shù)是否等于選中的數(shù)據(jù)行
        {
            StrHelper.Alert("數(shù)據(jù)更新成功!");
        }
        else
        {
            StrHelper.Alert("數(shù)據(jù)更新失敗,事務(wù)已回滾!");
        }
        GV_DataBind();//重新綁定控件數(shù)據(jù)
        return;
    }
}

StrHelper.cs

復(fù)制代碼 代碼如下:

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
//引入如下命名空間
using System.Text.RegularExpressions;
using System.Text;

/// summary>
///StrHelper 的摘要說(shuō)明
/// /summary>
public class StrHelper
{
    public StrHelper(){}
    /// summary>
    /// 截取字符串函數(shù)
    /// /summary>
    /// param name="str">所要截取的字符串/param>
    /// param name="num">截取字符串的長(zhǎng)度/param>
    /// returns>/returns>
    static public string GetSubString(string str, int num)
    {
        #region
        return (str.Length > num) ? str.Substring(0, num) + "..." : str;
        #endregion
    }
    /// summary>
    /// 截取字符串優(yōu)化版
    /// /summary>
    /// param name="stringToSub">所要截取的字符串/param>
    /// param name="length">截取字符串的長(zhǎng)度/param>
    /// returns>/returns>
    public static string GetFirstString(string stringToSub, int length)
    {
        #region
        Regex regex = new Regex("[\u4e00-\u9fa5]+", RegexOptions.Compiled);
        char[] stringChar = stringToSub.ToCharArray();
        StringBuilder sb = new StringBuilder();
        int nLength = 0;
        bool isCut = false;
        for (int i = 0; i stringChar.Length; i++)
        {
            if (regex.IsMatch((stringChar[i]).ToString()))//regex.IsMatch指示正則表達(dá)式在輸入字符串中是否找到匹配項(xiàng)
            {
                sb.Append(stringChar[i]);//將信息追加到當(dāng)前 StringBuilder 的結(jié)尾
                nLength += 2;
            }
            else
            {
                sb.Append(stringChar[i]);
                nLength = nLength + 1;
            }
            if (nLength > length)//替換字符串
            {
                isCut = true;
                break;
            }
        }
        if (isCut)
            return sb.ToString() + "...";
        else
            return sb.ToString();
        #endregion
    }
    /// 彈出JavaScript小窗口
    /// /summary>
    /// param name="js">窗口信息/param>
    public static void Alert(string message)
    {
        #region
        string js = @"Script language='JavaScript'>
                    alert('" + message + "');/Script>";
        HttpContext.Current.Response.Write(js);

        #endregion
    }
    public static void GridViewHeader(GridView gdv)//顯示表頭并顯示沒(méi)有數(shù)據(jù)的提示信息
    {
        //表頭的設(shè)置
        GridViewRow row = new GridViewRow(-1, -1, DataControlRowType.EmptyDataRow, DataControlRowState.Normal);
        foreach (DataControlField field in gdv.Columns)
        {
            TableCell cell = new TableCell();
            cell.Text = field.HeaderText;
            cell.Width = field.HeaderStyle.Width;
            cell.Height = field.HeaderStyle.Height;
            cell.ForeColor = field.HeaderStyle.ForeColor;
            cell.Font.Size = field.HeaderStyle.Font.Size;
            cell.Font.Bold = field.HeaderStyle.Font.Bold;
            cell.Font.Name = field.HeaderStyle.Font.Name;
            cell.Font.Strikeout = field.HeaderStyle.Font.Strikeout;
            cell.Font.Underline = field.HeaderStyle.Font.Underline;
            cell.BackColor = field.HeaderStyle.BackColor;
            cell.VerticalAlign = field.HeaderStyle.VerticalAlign;
            cell.HorizontalAlign = field.HeaderStyle.HorizontalAlign;
            cell.CssClass = field.HeaderStyle.CssClass;
            cell.BorderColor = field.HeaderStyle.BorderColor;
            cell.BorderStyle = field.HeaderStyle.BorderStyle;
            cell.BorderWidth = field.HeaderStyle.BorderWidth;
            row.Cells.Add(cell);
        }
        TableItemStyle headStyle = gdv.HeaderStyle;
        TableItemStyle emptyStyle = gdv.EmptyDataRowStyle;
        emptyStyle.Width = headStyle.Width;
        emptyStyle.Height = headStyle.Height;
        emptyStyle.ForeColor = headStyle.ForeColor;
        emptyStyle.Font.Size = headStyle.Font.Size;
        emptyStyle.Font.Bold = headStyle.Font.Bold;
        emptyStyle.Font.Name = headStyle.Font.Name;
        emptyStyle.Font.Strikeout = headStyle.Font.Strikeout;
        emptyStyle.Font.Underline = headStyle.Font.Underline;
        emptyStyle.BackColor = headStyle.BackColor;
        emptyStyle.VerticalAlign = headStyle.VerticalAlign;
        emptyStyle.HorizontalAlign = headStyle.HorizontalAlign;
        emptyStyle.CssClass = headStyle.CssClass;
        emptyStyle.BorderColor = headStyle.BorderColor;
        emptyStyle.BorderStyle = headStyle.BorderStyle;
        emptyStyle.BorderWidth = headStyle.BorderWidth;
        //空白行的設(shè)置
        GridViewRow row1 = new GridViewRow(0, -1, DataControlRowType.EmptyDataRow, DataControlRowState.Normal);
        TableCell cell1 = new TableCell();
        cell1.Text = "沒(méi)有相關(guān)數(shù)據(jù)可以顯示!";
        cell1.BackColor = System.Drawing.Color.White;
        row1.Cells.Add(cell1);
        cell1.ColumnSpan = 6;//合并列
        if (gdv.Controls.Count == 0)
        {
            gdv.Page.Response.Write("script language='javascript'>alert('必須在初始化表格類之前執(zhí)行DataBind方法并設(shè)置EmptyDataText屬性不為空!');/script>");
        }
        else
        {
            gdv.Controls[0].Controls.Clear();
            gdv.Controls[0].Controls.AddAt(0, row);
            gdv.Controls[0].Controls.AddAt(1, row1);
        }
    }
}

標(biāo)簽:江蘇 棗莊 衡水 萍鄉(xiāng) 衢州 大理 廣元 蚌埠

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《動(dòng)態(tài)組合SQL語(yǔ)句方式實(shí)現(xiàn)批量更新的實(shí)例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    武川县| 监利县| 澄江县| 惠安县| 鲁甸县| 涪陵区| 灌阳县| 达州市| 无锡市| 英吉沙县| 邵阳市| 泉州市| 尉犁县| 延寿县| 民乐县| 沾益县| 广南县| 广灵县| 钦州市| 崇州市| 锦屏县| 英吉沙县| 昌图县| 定远县| 喀喇沁旗| 遂川县| 临西县| 文昌市| 冷水江市| 前郭尔| 河东区| 车险| 吴忠市| 改则县| 平舆县| 翼城县| 乌苏市| 盐边县| 涿鹿县| 肥西县| 临沭县|