项目知识点总结

1、将对象modelList转换为DataTable表

复制代码
private DataTable ListToDataTable(List<Tellyes.Model.QuestionOption> QuestionOptionList)
        {
            DataTable dt = new DataTable();

            if (QuestionOptionList.Count > 0)
            {
                PropertyInfo[] propertys = QuestionOptionList[0].GetType().GetProperties();
                foreach (PropertyInfo pi in propertys)
                {
                    System.Type colType = pi.PropertyType;
                    if ((colType.IsGenericType) && (colType.GetGenericTypeDefinition() == typeof(Nullable<>)))//出现可能为空的情况
                    {
                        colType = pi.PropertyType.GetGenericArguments()[0];

                    }
                    dt.Columns.Add(pi.Name, colType);
                }

                for (int i = 0; i < QuestionOptionList.Count; i++)
                {
                    ArrayList al = new ArrayList();
                    foreach (PropertyInfo pi in propertys)
                    {
                        object obj = pi.GetValue(QuestionOptionList[i], null);
                        al.Add(obj);
                    }

                    object[] array = al.ToArray();
                    dt.LoadDataRow(array, true);
                }
            }
            return dt;
        }
复制代码

 

2、查询excel表格添加到dataset

复制代码
public DataSet ExecleDs(string filenameurl)
        {
            string strConn = "Provider=Microsoft.ACE.OleDb.12.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 12.0; HDR=YES; IMEX=1'";
            OleDbConnection conn = new OleDbConnection(strConn);
            conn.Open();
            DataSet ds = new DataSet();
            string strSql = string.Format("SELECT * FROM [{0}$]", "Sheet1");
            OleDbDataAdapter odda = new OleDbDataAdapter(strSql, conn);
            odda.Fill(ds, "hou");
            return ds;
        }
复制代码

 

3、将一文件上传到服务器中:所有操作都在后台

复制代码
string clientIP = "192.168.4.22";
                string serverIP = "192.168.4.22";
                string clientFilesName = "shangchuan";
                string serverFilesName = @"QuestionUploadFile\" + userName;

                string fileName = "111.flv";
                string clientPath = @"\\" + clientIP + "\\" + clientFilesName + "\\" + fileName;
                string serverPath = @"\\" + serverIP + "\\" + serverFilesName + "\\" + fileName;

                System.IO.File.Copy(clientPath, serverPath,true );
复制代码

前提是:将文件shangchuan,QuestionUploadFile设置共享属性,同时在安全属性上是目标机器增加应有权限。

 

4、DataTable排序处理

实例:

复制代码
DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("id", typeof(int)));
            dt.Columns.Add(new DataColumn("name", typeof(string )));
            dt.Columns.Add(new DataColumn("age", typeof(int)));

            for (int i = 0; i < 5; i++)
            {
                DataRow dr = dt.NewRow();
                dr["id"] = i;
                dr["name"] = i + "jim";
                dr["age"] = 10 - i;
                dt.Rows.Add(dr);
            }

            DataView dv = dt.DefaultView;
            dv.Sort = "age Asc";
            DataTable dt2 = dv.ToTable();
复制代码

 

5、正则判别使用

复制代码
private void txtNumber_TextChanged(object sender, TextChangedEventArgs e)
        {
            e.Handled = System.Text.RegularExpressions.Regex.IsMatch(txtNumber.Text, @"^-?[0-9]\d*$");
            if (txtNumber.Text != "admin")
            {
                if (e.Handled == false && txtNumber.Text != "")
                {
                    CustomMessageBox.CustomMessageBox.ShowBox("请输入整数![0~9]", "提示");
                    txtNumber.Text = "";
                    Keyboard.Focus(txtNumber);
                    return;
                }
            }
        }

        public static bool checkString(string source)
        {
            Regex regExp = new Regex("[~!@#$%^&*()=+[\\]{}''\";:/?.,><`|!·¥…—()\\-、;:。,》《]");
            return !regExp.IsMatch(source);
        }
复制代码

 

posted @   小项目笔记  阅读(658)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?

更多文章请关注公众号:小项目笔记

小项目笔记

点击右上角即可分享
微信分享提示