C# WinForm 勾选DataGridView的数据进行更新,并显示进度条

加载共享目录中的所有图片信息,以及图片对应的xml用户信息,以DataGridView的形式呈现,勾选对应的用户,就加载这个人的图片以及用户信息,并显示进度条。

1.这里是共享目录:(每个用户包含6张图,以及一个同名的xml文件)

2.保存用户信息的xml文件:

3.进度条界面:

对应代码:

public partial class FrmProcsBar : Form
    {
        public FrmProcsBar(int _Min,int _Max)
        {
            InitializeComponent();
            //设置最大范围值
            progressBar1.Maximum = _Max;
            //设置最小范围
            progressBar1.Value = progressBar1.Minimum = _Min;
        }

        private void FrmProcsBar_Load(object sender, EventArgs e)
        {
            this.Owner.Enabled = false;
        }

        private void FrmProcsBar_FormClosed(object sender, FormClosedEventArgs e)
        {
            this.Owner.Enabled = true;
        }

        public void setPos(int value)
        {
            if (value < progressBar1.Maximum)
            {
                //设置进度值
                progressBar1.Value = value;
                label1.Text = (value * 100 / progressBar1.Maximum).ToString() + "%";
            }
            //重点,必须加上,否则父子窗体都假死
            Application.DoEvents();
        }
    }

4.调用进度条,并解析数据

FrmProcsBar fm;
delegate void EventUpload_Img(object sender, EventArgs e);
public string sourcePath = "";
public DataTable myDt = new DataTable();
public ShareImgDataSelect(string _sourcePath)
        {
            InitializeComponent();
            this.sourcePath = _sourcePath;

            InitColumns();
        }

        public void InitColumns()
        {
            DataGridViewTextBoxColumn textCol = new DataGridViewTextBoxColumn();
            textCol = new DataGridViewTextBoxColumn();
            textCol.HeaderText = "MemberId";
            textCol.Width = 313;
            textCol.Name = "MemberId";
            textCol.DataPropertyName = "MemberId";
            textCol.ReadOnly = true;
            textCol.Visible = false;
            textCol.SortMode = DataGridViewColumnSortMode.NotSortable;
            textCol.DefaultCellStyle.Font = new Font("宋体", 20);
            dgCustomer.Columns.Add(textCol);
            myDt.Columns.Add("MemberId",typeof(string));

            textCol = new DataGridViewTextBoxColumn();
            textCol.HeaderText = "姓名";
            textCol.Width = 130;
            textCol.Name = "MemberName";
            textCol.DataPropertyName = "MemberName";
            textCol.ReadOnly = true;
            textCol.SortMode = DataGridViewColumnSortMode.NotSortable;
            textCol.DefaultCellStyle.Font = new Font("宋体", 20);
            dgCustomer.Columns.Add(textCol);
            myDt.Columns.Add("MemberName", typeof(string));

            textCol = new DataGridViewTextBoxColumn();
            textCol.HeaderText = "拍照日期";
            textCol.Name = "CreateTime";
            textCol.DataPropertyName = "CreateTime";
            textCol.Width = 300;
            textCol.ReadOnly = true;
            textCol.Visible = true;
            textCol.MaxInputLength = 30;
            textCol.SortMode = DataGridViewColumnSortMode.NotSortable;
            textCol.DefaultCellStyle.Font = new Font("宋体", 20);
            dgCustomer.Columns.Add(textCol);
            dgCustomer.Columns["CreateTime"].DefaultCellStyle.Format = "yyyy/MM/dd hh:mm:ss";
            myDt.Columns.Add("CreateTime", typeof(DateTime));

            textCol = new DataGridViewTextBoxColumn();
            textCol.HeaderText = "性别";
            textCol.Name = "Sex";
            textCol.DataPropertyName = "Sex";
            textCol.Width = 75;
            textCol.ReadOnly = true;
            textCol.SortMode = DataGridViewColumnSortMode.NotSortable;
            textCol.DefaultCellStyle.Font = new Font("宋体", 20);
            dgCustomer.Columns.Add(textCol);
            myDt.Columns.Add("Sex", typeof(string));

            textCol = new DataGridViewTextBoxColumn();
            textCol.HeaderText = "生日";
            textCol.Name = "BirthDay";
            textCol.DataPropertyName = "BirthDay";
            textCol.Width = 180;
            textCol.ReadOnly = true;
            textCol.Visible = true;
            textCol.SortMode = DataGridViewColumnSortMode.NotSortable;
            textCol.DefaultCellStyle.Font = new Font("宋体", 20);
            dgCustomer.Columns.Add(textCol);
            myDt.Columns.Add("BirthDay", typeof(string));

            textCol = new DataGridViewTextBoxColumn();
            textCol.HeaderText = "手机号码";
            textCol.Name = "Moblie";
            textCol.DataPropertyName = "Moblie";
            textCol.Width = 180;
            textCol.ReadOnly = true;
            textCol.SortMode = DataGridViewColumnSortMode.NotSortable;
            textCol.DefaultCellStyle.Font = new Font("宋体", 20);
            dgCustomer.Columns.Add(textCol);
            myDt.Columns.Add("Moblie", typeof(string));

            textCol = new DataGridViewTextBoxColumn();
            textCol.HeaderText = "病历号";
            textCol.Name = "QQ";
            textCol.DataPropertyName = "QQ";
            textCol.Width = 180;
            textCol.ReadOnly = true;
            textCol.Visible = false;
            textCol.SortMode = DataGridViewColumnSortMode.NotSortable;
            textCol.DefaultCellStyle.Font = new Font("宋体", 20);
            dgCustomer.Columns.Add(textCol);
            myDt.Columns.Add("QQ", typeof(string));

            textCol = new DataGridViewTextBoxColumn();
            textCol.HeaderText = "微信号";
            textCol.Name = "WX";
            textCol.DataPropertyName = "WX";
            textCol.Width = 100;
            textCol.ReadOnly = true;
            textCol.Visible = false;
            textCol.SortMode = DataGridViewColumnSortMode.NotSortable;
            textCol.DefaultCellStyle.Font = new Font("宋体", 20);
            dgCustomer.Columns.Add(textCol);
            myDt.Columns.Add("WX", typeof(string));

            textCol = new DataGridViewTextBoxColumn();
            textCol.HeaderText = "患者编号";
            textCol.Name = "Code";
            textCol.DataPropertyName = "Code";
            textCol.Width = 190;
            textCol.ReadOnly = true;
            textCol.Visible = false;
            textCol.SortMode = DataGridViewColumnSortMode.NotSortable;
            textCol.DefaultCellStyle.Font = new Font("宋体", 20);
            dgCustomer.Columns.Add(textCol);
            myDt.Columns.Add("Code", typeof(string));

            textCol = new DataGridViewTextBoxColumn();
            textCol.HeaderText = "疾病名称";
            textCol.Name = "SdDisease";
            textCol.DataPropertyName = "SdDisease";
            textCol.Width = 190;
            textCol.ReadOnly = true;
            textCol.Visible = false;
            textCol.SortMode = DataGridViewColumnSortMode.NotSortable;
            textCol.DefaultCellStyle.Font = new Font("宋体", 20);
            dgCustomer.Columns.Add(textCol);
            myDt.Columns.Add("SdDisease", typeof(string));

            textCol = new DataGridViewTextBoxColumn();
            textCol.HeaderText = "MainDisease";
            textCol.Name = "MainDisease";
            textCol.DataPropertyName = "MainDisease";
            textCol.Width = 200;
            textCol.ReadOnly = true;
            textCol.Visible = false;
            textCol.SortMode = DataGridViewColumnSortMode.NotSortable;
            textCol.DefaultCellStyle.Font = new Font("宋体", 20);
            dgCustomer.Columns.Add(textCol);
            myDt.Columns.Add("MainDisease", typeof(string));

            textCol = new DataGridViewTextBoxColumn();
            textCol.HeaderText = "治疗项目";
            textCol.Name = "CureProject";
            textCol.DataPropertyName = "CureProject";
            textCol.Width = 200;
            textCol.ReadOnly = true;
            textCol.Visible = false;
            textCol.SortMode = DataGridViewColumnSortMode.NotSortable;
            textCol.DefaultCellStyle.Font = new Font("宋体", 20);
            dgCustomer.Columns.Add(textCol);
            myDt.Columns.Add("CureProject", typeof(string));

            textCol = new DataGridViewTextBoxColumn();
            textCol.HeaderText = "病历诊断";
            textCol.Name = "DiseaseDiagnosis";
            textCol.DataPropertyName = "DiseaseDiagnosis";
            textCol.Width = 260;
            textCol.ReadOnly = true;
            textCol.Visible = false;
            textCol.SortMode = DataGridViewColumnSortMode.NotSortable;
            textCol.DefaultCellStyle.Font = new Font("宋体", 20);
            dgCustomer.Columns.Add(textCol);
            myDt.Columns.Add("DiseaseDiagnosis", typeof(string));

            DataGridViewCheckBoxColumn checkIsUse = new DataGridViewCheckBoxColumn();
            checkIsUse.HeaderText = "选择";
            checkIsUse.Name = "上传";
            checkIsUse.DataPropertyName = "上传";
            checkIsUse.Width = 100;
            textCol.DefaultCellStyle.Font = new Font("宋体", 25);
            checkIsUse.SortMode = DataGridViewColumnSortMode.NotSortable;
            dgCustomer.Columns.Add(checkIsUse);
            myDt.Columns.Add("上传", typeof(int));
        }

        private void LightDataSelect_Load(object sender, EventArgs e)
        {
            LoadData();

            // 判断目标目录是否存在如果不存在则新建
            if (!System.IO.Directory.Exists(Tool.sResPicsDir))
            {
                System.IO.Directory.CreateDirectory(Tool.sResPicsDir);
            }
        }

        public void LoadData()
        {
            string MemberId, MemberName;
            string Sex, Birthday, Moblie, QQ, WX, CreateTime, Code, faceview;
            string strXmlFileName;
            string[] filedir = Directory.GetFiles(sourcePath, "*.xml", SearchOption.AllDirectories);

            for (int i = 0; i < filedir.Length; i++)
            {
                
                string xmlfile = filedir[i];
                strXmlFileName = System.IO.Path.GetFileName(xmlfile);
                string[] strImage = strXmlFileName.Split('.');

                //这里首先要过滤掉,上次已经加载的批次图片
                if (IsExitInDb(strImage[0]))
                {
                    continue;
                }

                //读取xml数据
                XmlDocument xml = new XmlDocument();
                xml.Load(xmlfile);//加载xml文件
                XmlNode xn = xml.DocumentElement;
                MemberId = xn["MemberId"].InnerText;
                MemberName = xn["MemberName"].InnerText.Trim();
                Sex = xn["Sex"].InnerText;
                Birthday = xn["Birthday"].InnerText;
                Moblie = xn["Moblie"].InnerText;
                QQ = xn["QQ"].InnerText;
                WX = xn["WX"].InnerText;
                CreateTime = xn["CreateTime"].InnerText.Trim();
                Code = xn["Code"].InnerText;
                faceview = xn["faceview"].InnerText;

                DataRow row = myDt.NewRow();
                row["MemberId"] = MemberId;
                row["MemberName"] = MemberName;
                row["Sex"] = Sex;
                row["BirthDay"] = Birthday;
                row["Moblie"] = Moblie;
                row["QQ"] = QQ;
                row["WX"] = WX;
                row["CreateTime"] = CreateTime;
                row["Code"] = Code;
                //把faceview暂时放到这个字段
                row["SdDisease"] = faceview;
                row["MainDisease"] = filedir[i];
                row["上传"] = 0;
                myDt.Rows.Add(row);
            }
            dgCustomer.DataSource = myDt;
        }

        /// <summary>
        /// 判断当前的xml文件名,对应的图片是否已经加载过
        /// </summary>
        /// <param name="name">xml文件名,对应的图片名字</param>
        /// <returns></returns>
        public bool IsExitInDb(string name)
        {
            bool result = false;
            string sql = $"select * from CBS_member_Pics where 肤质 like '%{name}%'";
            DataTable dt = SqlHelper.ExecuteAccessDataTable(sql);
            if (dt != null && dt.Rows.Count > 0)
            {
                result = true;
            }
            return result;
        }

        private void dgvDataTime_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
        {
            for (int i = 0; i < dgCustomer.Rows.Count; i++)
            {
                int j = i + 1;
                dgCustomer.Rows[i].HeaderCell.Value = j.ToString();
                dgCustomer.Rows[i].HeaderCell.Style.Font = new Font("宋体", 20);
            }
        }

        private void dgvDataTime_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            //获取选中的数据
            bool isSelect = false;
            if (!Convert.IsDBNull(dgCustomer.Rows[e.RowIndex].Cells["上传"].Value))
            {
                isSelect = Convert.ToBoolean(dgCustomer.Rows[e.RowIndex].Cells["上传"].Value);
            }
            
            if (isSelect)
            {
                dgCustomer.Rows[e.RowIndex].Cells["上传"].Value = false;
                dgCustomer.Rows[e.RowIndex].Selected = false;
            }
            else
            {
                dgCustomer.Rows[e.RowIndex].Cells["上传"].Value = true;
            }
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnOk_Click(object sender, EventArgs e)
        {
            fm = new FrmProcsBar(0, 101);
            this.Invoke(new EventUpload_Img(Upload_Img), sender, e);
        }

        private void Upload_Img(object sender, EventArgs e)
        {
            fm.Show(this);
            DataTable dt = dgCustomer.DataSource as DataTable;
            DataTable _SelectData = dt.Copy();
            fm.setPos(0);//设置进度条位置0%
            _SelectData.Clear();
            if (dt != null && dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    bool isSelect = false;
                    if (!Convert.IsDBNull(dgCustomer.Rows[i].Cells["上传"].Value))
                    {
                        isSelect = Convert.ToBoolean(dgCustomer.Rows[i].Cells["上传"].Value);
                    }
                    if (isSelect)
                    {
                        DataRow row = _SelectData.NewRow();
                        row["MemberId"] = dt.Rows[i]["MemberId"]?.ToString();
                        row["MemberName"] = dt.Rows[i]["MemberName"]?.ToString();
                        row["Sex"] = dt.Rows[i]["Sex"]?.ToString();
                        row["BirthDay"] = dt.Rows[i]["Birthday"]?.ToString();
                        row["Moblie"] = dt.Rows[i]["Moblie"]?.ToString();
                        row["QQ"] = dt.Rows[i]["QQ"]?.ToString();
                        row["WX"] = dt.Rows[i]["WX"]?.ToString();
                        row["CreateTime"] = dt.Rows[i]["CreateTime"]?.ToString();
                        row["Code"] = dt.Rows[i]["Code"]?.ToString();
                        row["SdDisease"] = dt.Rows[i]["SdDisease"]?.ToString();
                        row["MainDisease"] = dt.Rows[i]["MainDisease"]?.ToString();
                        row["上传"] = Convert.ToInt32(dt.Rows[i]["上传"]?.ToString());

                        _SelectData.Rows.Add(row);
                    }
                }
            }

            if (_SelectData != null && _SelectData.Rows.Count > 0)
            {
                //加载选中的内容
                string MemberId = "", MemberName = "", Sex = "", Moblie = "", QQ = "", WX = "", Code = "";
                int faceView = 0;
                string strSQL, AId = "";
                string ImageDir = "";
                string strSQL1 = "", strXmlFileName = "", strFileName = "", ImagePath = "", ImageType = "";
                DateTime Birthday = DateTime.Now, CreateTime = DateTime.Now;
                int PoreData, UVLowLevelData, UVDeepLevelData, BuLinData, WenLiData, RedAreaData, BrownAreaData, LowLevelWrinkleData, XiWenData, DeepLevelWrinkleData, RedAreaProportion;
                //每一条数据,占百分比的值
                int oneTimeValue = 100 / _SelectData.Rows.Count;
                //进度条的值
                int jdtValue = 0;
                for (int i = 0; i < _SelectData.Rows.Count; i++)
                {
                    MemberId = _SelectData.Rows[i]["MemberId"]?.ToString();
                    MemberName = _SelectData.Rows[i]["MemberName"]?.ToString();
                    Sex = _SelectData.Rows[i]["Sex"]?.ToString();
                    Birthday = Convert.ToDateTime(_SelectData.Rows[i]["BirthDay"]?.ToString());
                    Moblie = _SelectData.Rows[i]["Moblie"]?.ToString();
                    QQ = _SelectData.Rows[i]["QQ"]?.ToString();
                    WX = _SelectData.Rows[i]["WX"]?.ToString();
                    CreateTime = Convert.ToDateTime(_SelectData.Rows[i]["CreateTime"]?.ToString());
                    Code = _SelectData.Rows[i]["Code"]?.ToString();
                    //把faceview暂时放到这个字段
                    faceView = Convert.ToInt32(_SelectData.Rows[i]["SdDisease"]?.ToString());

                    string xmlfile = _SelectData.Rows[i]["MainDisease"]?.ToString();
                    strXmlFileName = System.IO.Path.GetFileName(xmlfile);
                    string[] strImage = strXmlFileName.Split('.');

                    AId = "";
                    strSQL = $"select * from tbl_member where MemberId ='{MemberId}'";
                    DataTable dt2 = SqlHelper.ExecuteAccessDataTable(strSQL);
                    if (dt2 == null || dt2.Rows.Count == 0)
                    {
                        AId = Guid.NewGuid().ToString("N");
                        SqlHelper.ExecuteAccessNonQuery($@"insert into tbl_member(MemberId,MemberName,Sex,Birthday,Moblie,QQ,WX,CreateTime,Code)
                                                                           values('{MemberId}','{MemberName}','{Sex}','{Birthday}','{Moblie}',
                                                                                  '{QQ}','{WX}','{CreateTime}','{Code}')");
                        SqlHelper.ExecuteAccessNonQuery($@"insert into CBS_member_Pics(ID,MemberID,faceview,CreateDate) 
                                                                                values('{ AId }','{MemberId }','{faceView}','{ CreateTime }')");
                    }
                    bool flag = true;
                    string fz = "", fs = "", uv = "", zsq = "", zsqkx = "", hsq = "", hsqkx = "", uvsc = "", uvsckx = "", uvqc = "", uvqckx = "", hxs = "", mk = "", bl = "", wl = "", zw = "";
                    // 遍历所有的文件
                    string[] fileList = Directory.GetFiles(sourcePath, strImage[0] + "*.jpg", SearchOption.AllDirectories);

                    if (fileList.Length > 0)
                    {
                        //每张图片占一批次数据百分比
                        int onePicValue = oneTimeValue / fileList.Length;
                        for (int j = 0; j < fileList.Length; j++)
                        {
                            strFileName = System.IO.Path.GetFileName(fileList[j]);
                            string[] strArr = strFileName.Split('_');
                            string[] str2 = fileList[j].Split('\\');
                            string beforeName = str2[3];

                            if (strArr.Length < 3)
                            {
                                continue;
                            }
                            MemberName = strArr[0];
                            ImagePath = strArr[0] + "_" + strArr[1] + "\\" + beforeName;
                            ImageType = strArr[2];
                            ImageDir = MemberName + "(" + MemberId + ")";
                            //创建customers下一级目录
                            if (!Directory.Exists(Tool.sResPicsDir + "\\" + ImageDir))
                            { Directory.CreateDirectory(Tool.sResPicsDir + "\\" + ImageDir); }
                            //创建customers下二级目录
                            if (!Directory.Exists(Tool.sResPicsDir + "\\" + ImageDir + "\\" + ImagePath))
                            { Directory.CreateDirectory(Tool.sResPicsDir + "\\" + ImageDir + "\\" + ImagePath); }

                            ImagePath = ImagePath + "\\" + strFileName;
                            if (flag)
                            {
                                strSQL1 = $"select * from CBS_member_Pics where MemberId ='{MemberId}' and 肤质 like '%{strArr[1]}%'";
                                DataTable dt3 = SqlHelper.ExecuteAccessDataTable(strSQL1);
                                if (dt3 != null && dt3.Rows.Count > 0)
                                {
                                    break;
                                }
                                else
                                {
                                    if (string.IsNullOrWhiteSpace(AId))
                                    {
                                        AId = Guid.NewGuid().ToString("N");
                                        SqlHelper.ExecuteAccessNonQuery($@"insert into CBS_member_Pics(ID,MemberID,faceview,CreateDate) 
                                                                                            values('{AId}','{MemberId}','{faceView}','{ CreateTime}')");
                                    }
                                }
                                flag = false;
                            }
                            if (ImageType.Contains("PL"))
                            {
                                fz = ImagePath;
                            }
                            else if (ImageType.Contains("RGB"))
                            {
                                fs = ImagePath;
                            }
                            else if (ImageType.Substring(0, ImageType.IndexOf('.')) == "UV")
                            {
                                uv = ImagePath;
                            }
                            else if (ImageType.Substring(0, ImageType.IndexOf('.')) == "棕色区")
                            {
                                zsq = ImagePath;
                            }
                            else if (ImageType.Contains("棕色区框选"))
                            {
                                zsqkx = ImagePath;
                            }
                            else if (ImageType.Substring(0, ImageType.IndexOf('.')) == "红色区")
                            {
                                hsq = ImagePath;
                            }
                            else if (ImageType.Contains("红色区框选"))
                            {
                                hsqkx = ImagePath;
                            }
                            else if (ImageType.Substring(0, ImageType.IndexOf('.')) == "UV深层")
                            {
                                uvsc = ImagePath;
                            }
                            else if (ImageType.Contains("UV深层框选"))
                            {
                                uvsckx = ImagePath;
                            }
                            else if (ImageType.Substring(0, ImageType.IndexOf('.')) == "UV浅层")
                            {
                                uvqc = ImagePath;
                            }
                            else if (ImageType.Contains("UV浅层框选"))
                            {
                                uvqckx = ImagePath;
                            }
                            else if (ImageType.Contains("红血丝"))
                            {
                                hxs = ImagePath;
                            }
                            else if (ImageType.Contains("毛孔"))
                            {
                                mk = ImagePath;
                            }
                            else if (ImageType.Contains("卟啉"))
                            {
                                bl = ImagePath;
                            }
                            else if (ImageType.Contains("纹理"))
                            {
                                wl = ImagePath;
                            }
                            else if (ImageType.Contains("皱纹"))
                            {
                                zw = ImagePath;
                            }

                            CopyFile(fileList[j], Tool.sResPicsDir + "\\" + ImageDir + "\\" + ImagePath, 10240000);
                            jdtValue += onePicValue * (j + 1);
                            fm.setPos(jdtValue);//设置进度条位置
                        }

                        SqlHelper.ExecuteAccessNonQuery($@"update CBS_member_Pics set 肤质 ='{fz}',肤色 ='{fs}',UV ='{uv}',棕色区 ='{zsq}',棕色区_1 ='{zsqkx}',
                                                                                  红色区 ='{hsq}',红色区_1 ='{hsqkx}',UV深层 ='{uvsc}',UV深层框选 ='{uvsckx}',
                                                                                  UV浅层 ='{uvqc}',UV浅层框选 ='{uvqckx}',红血丝 ='{hxs}',毛孔 ='{mk}',
                                                                                  卟啉 ='{bl}',纹理 ='{wl}',皱纹 ='{zw}' where ID ='{AId}'");
                    }
                    else
                    {
                        MessageBox.Show("无图片可加载!");
                    }
                }
                fm.setPos(100);
                MessageBox.Show("加载成功!");
                this.Close();
            }
            else
            {
                MessageBox.Show("请勾选要加载的数据!");
            }
        }

        /// <summary>
        /// 复制文件
        /// </summary>
        /// <param name="fromFile">要复制的文件</param>
        /// <param name="toFile">要保存的位置</param>
        /// <param name="lengthEachTime">每次复制的长度</param>
        private void CopyFile(string fromFile, string toFile, int lengthEachTime)
        {
            FileStream fileToCopy = new FileStream(fromFile, FileMode.Open, FileAccess.Read);
            FileStream copyToFile = new FileStream(toFile, FileMode.Append, FileAccess.Write);
            int lengthToCopy;
            if (lengthEachTime < fileToCopy.Length)//如果分段拷贝,即每次拷贝内容小于文件总长度
            {
                byte[] buffer = new byte[lengthEachTime];
                int copied = 0;
                while (copied <= ((int)fileToCopy.Length - lengthEachTime))//拷贝主体部分
                {
                    lengthToCopy = fileToCopy.Read(buffer, 0, lengthEachTime);
                    fileToCopy.Flush();
                    copyToFile.Write(buffer, 0, lengthEachTime);
                    copyToFile.Flush();
                    copyToFile.Position = fileToCopy.Position;
                    copied += lengthToCopy;
                }
                int left = (int)fileToCopy.Length - copied;//拷贝剩余部分
                lengthToCopy = fileToCopy.Read(buffer, 0, left);
                fileToCopy.Flush();
                copyToFile.Write(buffer, 0, left);
                copyToFile.Flush();
            }

            else//如果整体拷贝,即每次拷贝内容大于文件总长度
            {
                byte[] buffer = new byte[fileToCopy.Length];
                fileToCopy.Read(buffer, 0, (int)fileToCopy.Length);
                fileToCopy.Flush();
                copyToFile.Write(buffer, 0, (int)fileToCopy.Length);
                copyToFile.Flush();
            }
            fileToCopy.Close();
            copyToFile.Close();
        }

        private void dgCustomer_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            if (e.ColumnIndex == 4)
            {
                e.FormattingApplied = true;
                string birthDay = e.Value.ToString();
                DateTime dt = Convert.ToDateTime(birthDay);
                e.Value = dt.ToString("yyyy/MM/dd");
            }
        }

加载效果图:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 C# WinForm 中,可以使用 DataGridView 控件进行数据展示和编辑。如果数据量较大,可以对 DataGridView 进行分页,以提高程序的性能和用户体验。具体实现方法可以参考 DataGridView 控件的 Paging 属性和 PageIndex 属性。 ### 回答2: 我不知道"C"的问题具体指的是哪个领域或具体的问题,所以我会就"C"作出一些可能的解释和回答。 如果"C"指的是编程语言的"C",那么它是一种过去和现在都非常流行的编程语言,因为它具有简单、高效、灵活等特点,广泛应用于系统开发、网络编程、游戏开发、科学计算等领域。注意到"C"语言只提供基本的语言结构和函数库,需要充分发挥程序员的能力,编写简洁高效的程序。 如果"C"指的是数学中的"C",那么它可以有不同的含义,比如表示常数"C"、复数中的实部"C"、曲线的曲率"C"等。具体应用在不同的数学问题中,可能会有不同的解释和方法。 如果"C"指的是其他的概念或问题,这里就不能具体回答,需要更多的上下文和信息才能进行详细的探讨和回答。 ### 回答3: C是一门高级编程语言,由贝尔实验室的Dennis M. Ritchie在20世纪70年代初发明。C是一种系统编程语言,被广泛应用于操作系统、编译器、网络协议、驱动程序等方面的开发。C有着简洁、高效、灵活的特点,使得它在计算机科学领域的应用非常广泛,被誉为“高级语言中的低级语言”。 C语言是一种结构化编程语言,支持变量、运算符、循环、条件语句、数组、指针等基本特性,同时也支持自定义函数、结构体等高级特性。C中的语句执行速度非常快,因为C代码编译成机器码后能够直接执行,没有中间层的解释器或虚拟机。 与其他高级语言相比,C的语法比较严格,需要程序员手动管理内存、指针等,这也是学习C语言时需要掌握的重要知识点。另外,由于C语言的运行效率高,对于底层开发及系统级编程有很大作用,因此C语言在各种嵌入式、操作系统、游戏等领域得到了广泛的应用。 总的来说,C是一门广泛应用于计算机科学领域的高级编程语言,其简洁、高效、灵活的特点使得它广受欢迎。如果你想进一步了解计算机科学领域的知识,学习C语言是一个很好的起点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值