小白在线

爱生活 爱小白

C#DataTable使用

在项目中常常常使用到DataTable,假设DataTable使用得当,不仅能使程序简洁有用,并且可以提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结。

添加引用

using System.Data;

创建表

HTTP GET POST 获取

public class WebHttp
{
    /// <summary>
    /// get请求带重试
    /// </summary>
    /// <param name="Url"></param>
    /// <param name="postDataStr"></param>
    /// <param name="sum"></param>
    /// <returns></returns>
    public static string HttpGet(string Url, string postDataStr, int sum)
    {
        string temp=null;
        for (int i = 0; i < sum; i++)
        {
            if (string.IsNullOrEmpty(temp) || string.IsNullOrEmpty(temp.Trim()))
            {
                temp = HttpGet(Url, postDataStr);
            }
            else {
                break;
            }
        }
        return temp;
    }
    /// <summary>
    /// post请求带重试
    /// </summary>
    /// <param name="Url"></param>
    /// <param name="postDataStr"></param>
    /// <param name="sum"></param>
    /// <returns></returns>
    public static string HttpPost(string Url, string postDataStr, int sum)
    {
        string temp = null;
        for (int i = 0; i < sum; i++)
        {
            if (string.IsNullOrEmpty(temp) || string.IsNullOrEmpty(temp.Trim()))
            {
                temp = HttpPost(Url, postDataStr);
            }
            else
            {
                break;
            }
        }
        return temp;
    }
    /// <summary>
    /// GET请求与获取结果
    /// </summary>
    public static string HttpGet(string Url, string postDataStr)
    {
        try
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (postDataStr == "" ? "" : "?") + postDataStr);
            request.Method = "GET";
            request.ContentType = "text/html;charset=UTF-8";
            request.Timeout = 10000;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();
            return retString;
        }
        catch (Exception ex)
        {
            return null;
        }
    }
    /// <summary>
    /// POST请求与获取结果
    /// </summary>
    public static string HttpPost(string Url, string postDataStr)
    {
        try
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
            request.Method = "POST";
            request.Timeout = 6000000;
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = postDataStr.Length;
            StreamWriter writer = new StreamWriter(request.GetRequestStream(), Encoding.ASCII);
            writer.Write(postDataStr);
            writer.Flush();
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            string encoding = response.ContentEncoding;
            if (encoding == null || encoding.Length < 1)
            {
                encoding = "UTF-8"; //默认编码
            }
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding));
            string retString = reader.ReadToEnd();
            return retString;
        }
        catch (Exception ex)
        {
            return null;
        }
    }
}

C#【多线程篇】BackgroundWorker类使用总结

using System;
using System.ComponentModel;
using System.Windows.Forms;
 
namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        private BackgroundWorker bgWorker = new BackgroundWorker();
 
        public Form1()
        {
            InitializeComponent();
            InitializeBackgroundWorker();
        }
 
        private void InitializeBackgroundWorker()
        {
            bgWorker.WorkerReportsProgress = true;
            bgWorker.WorkerSupportsCancellation = true;
            bgWorker.DoWork += new DoWorkEventHandler(bgWorker_DoWork);
            bgWorker.ProgressChanged += new ProgressChangedEventHandler(bgWorker_ProgessChanged);
            bgWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgWorker_WorkerCompleted);
        }
 
   
        public void bgWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            for (int i = 0; i <= 100; i++)
            {
                if (bgWorker.CancellationPending)
                {
                    e.Cancel = true;
                    return;
                }
                else
                {
                    bgWorker.ReportProgress(i, "Working");
                    System.Threading.Thread.Sleep(10);
                }
            }
        }
 
        public void bgWorker_ProgessChanged(object sender, ProgressChangedEventArgs e)
        {
            string state =(string)e.UserState;//接收ReportProgress方法传递过来的userState
            this.label2.Text = "状态:" +state;
            this.progressBar1.Value = e.ProgressPercentage;
            this.label1.Text = "处理进度:" + Convert.ToString(e.ProgressPercentage) + "%";
        }
 
        public void bgWorker_WorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (e.Error != null)
            {
                MessageBox.Show(e.Error.ToString());
                return;
            }
            if (!e.Cancelled)
                this.label1.Text = "处理完毕!";
            else
                this.label1.Text = "处理终止!";
 
        }
     
        private void btnStart_Click_1(object sender, EventArgs e)
        {
            if (bgWorker.IsBusy)
                return;
            this.progressBar1.Maximum = 100;
            this.btnStart.Enabled = false;
            this.btnStop.Enabled = true;
            bgWorker.RunWorkerAsync("hello");
        }
 
        private void btnStop_Click_1(object sender, EventArgs e)
        {
            this.btnStart.Enabled = true;
            this.btnStop.Enabled = false;
            bgWorker.CancelAsync();
        }
    }
}

C#判断对象是否有值

//封装为一个方法判断变量是否为空
    isobjEmpty(obj) {
      if (obj === null || obj === undefined || obj === "" || obj.length === 0 || obj === {}) {
        return true;
      } else {
        return false;
      }
    },
    //使用
    if(!this.isobjEmpty(obj)){
        //存在
    }else{
        //不存在
    }

C# 从json中判断某个属性是否存在

                        if (jo.Property("abc") != null)
                        {

                        }

C#实现程序的版本升级更新

我们做了程序,不免会有版本升级,这就需要程序有自动版本升级的功能。

那么看看我是如何实现程序自动更新的。

直接上代码:

using System;  
using System.Collections.Generic;  
using System.Text;  
using System.Reflection;  
using System.IO;  
using System.Net;  
using System.Xml;  
  
namespace Update  
{  
    /// <summary>  
    /// 更新完成触发的事件  
    /// </summary>  
    public delegate void UpdateState();  
    /// <summary>  
    /// 程序更新  
    /// </summary>  
    public class SoftUpdate  
    {  
  
        private string download;  
        private const string updateUrl = "http://www.csdn.net/update.xml";//升级配置的XML文件地址  
 
        #region 构造函数  
        public SoftUpdate() { }  
  
        /// <summary>  
        /// 程序更新  
        /// </summary>  
        /// <param name="file">要更新的文件</param>  
        public SoftUpdate(string file,string softName) {  
            this.LoadFile = file;  
            this.SoftName = softName;  
        }   
        #endregion  
 
        #region 属性  
        private string loadFile;  
        private string newVerson;  
        private string softName;  
        private bool isUpdate;  
  
        /// <summary>  
        /// 或取是否需要更新  
        /// </summary>  
        public bool IsUpdate  
        {  
            get   
            {  
                checkUpdate();  
                return isUpdate;   
            }  
        }  
  
        /// <summary>  
        /// 要检查更新的文件  
        /// </summary>  
        public string LoadFile  
        {  
            get { return loadFile; }  
            set { loadFile = value; }  
        }  
  
        /// <summary>  
        /// 程序集新版本  
        /// </summary> %3B 
        public string NewVerson  
        {  
            get { return newVerson; }  
        }  
  
        /// <summary>  
        /// 升级的名称  
        /// </summary>  
        public string SoftName  
        {  
            get { return softName; }  
            set { softName = value; }  
        }  
 
        #endregion  
  
        /// <summary>  
        /// 更新完成时触发的事件  
        /// </summary>  
        public event UpdateState UpdateFinish;  
        private void isFinish() {  
            if(UpdateFinish != null)  
                UpdateFinish();  
        }  
  
        /// <summary>  
        /// 下载更新  
        /// </summary>  
        public void Update()  
        {  
            try  
            {  
                if (!isUpdate)  
                    return;  
                WebClient wc = new WebClient();  
                string filename = "";  
                string exten = download.Substring(download.LastIndexOf("."));  
                if (loadFile.IndexOf(@"\") == -1)  
                    filename = "Update_" + Path.GetFileNameWithoutExtension(loadFile) + exten;  
                else  
                    filename = Path.GetDirectoryName(loadFile) + "\\Update_" + Path.GetFileNameWithoutExtension(loadFile) + exten;  
                wc.DownloadFile(download, filename);  
                wc.Dispose();  
                isFinish();  
            }  
            catch  
            {  
                throw new Exception("更新出现错误,网络连接失败!");  
            }  
        }  
  
        /// <summary>  
        /// 检查是否需要更新  
        

C#读写config配置文件

应用程序配置文件(App.config)是标准的 XML 文件,XML 标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序。对于一个config文件:<?xml version="1.0" encoding="utf-8" ?> <configuration>   <appSettings>  &nbs

c#在一个窗口中打开另一个窗口

1、今天功能需要,打开新的窗口,这里简单记录下2、实现机制,在主程序打开第一个窗口,在第一个窗口里面写入触发事件,打开另一个窗口,并隐藏当前窗口3、实现代码段    创建两个窗口 分别为  setParams 和 main    在主程序中默认打开setParams窗口        Application.EnableVisualStyles();   &

C#使用checkedListBox1控件链接数据库的方法示例

本文实例讲述了C#使用checkedListBox1控件链接数据库的方法。分享给大家供大家参考,具体如下:在数据库中创建三个表: 学生信息表  爱好表   学生爱好表 结果让学生的信息和爱好同时显示到C#窗体上面using System; using System.Collections; using System.Collections.Generic; using System.Data; using S

C#将datatable数据转换成JSON数据的方法

json数据类型格式:[{id:"1",code:"1",description:"博士"},{id:"2",code:"2",description:"硕士"},{id:"3",code:"3",description:"学士"}]//参考代码public string DataTableToJs
<< 1 2 > >>
«    2023年3月    »
12345
6789101112
13141516171819
20212223242526
2728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接
    • Z-BlogPHP
    • 订阅本站的 RSS 2.0 新闻聚合

    Powered By Z-BlogPHP 1.7.3

    Copyright iXiaoBai.net Rights Reserved. 吉ICP备18001369号-1 吉公网安备22010202001107