c# return多个值 getter setter 查询数据库 使用list返回值 添加在窗口

参考文章C#中的setter和getter
C#中的setter和getter
怎么用 return 返回两个或多个值?
创建存储数据对象suoyou

 class suoyou {
            //private string utime;
           // private string uin;
            //private int flag;
           // //private string unum;
           // private string qnum;
           // private string qtime;
           // private string qname;

            public string qname
            {
                get;
                set;
            }
            public string qtime
            {
                get;
                set;
            }
            public string qnum
            {
                get;
                set;
            }
            public string unum
            {
                get;
                set;
            }
            public string utime { 
                get; 
                set; 
            }
            public string uin {
                get;
                set;
            }
            public int flag {
                get;
                set;
            }
        }

创建查询对象cha

class cha { 
        public List<suoyou> chasuoyou(string wenpath){
        string qunp;
                db b = new db();
                
                List<suoyou> s=new List<suoyou>();

                //创建连接字符串
                string path = wenpath;

                //string databaseFileName = "C:/QQ.db";
                //string connectionString = "data source = " + databaseFileName;
                //链接数据库
                //SQLiteConnection dbConnection = new SQLiteConnection(connectionString);
                //打开数据库
                //dbConnection.Open();
                //sql语句
                string sql = "select name from sqlite_master where type='table' order by name;";
                //加载sql
                SQLiteCommand cd = new SQLiteCommand(sql, b.lian(path));
                //执行
                SQLiteDataReader dr = cd.ExecuteReader();
                //
                //查询所有表名
                while (dr.Read())//读取
                {
                    try
                    {
                        //Console.Write(dr["name"]+"\n");
                        string str = dr["name"].ToString();
                        if (str.Length > 12)//过滤小于9的表名,因为用户消息与群消息的表名都大于9
                        {
                            qunp = str.Substring(0, 12);
                            string pan = str.Substring(0, 9);
                            //Console.Write(pan + "\n" + "我是");
                            if (pan == "tb_c2cMsg")
                            {//判断是用户消息还是群消息
                                string pp = str;
                                //string str1 = dr["name"].ToString();
                                //string pan1 = str1.Substring(0, 9);
                                //Console.Write(str + "\n");
                                string sqls = "select * from '" + str + "';";
                                //加载sql
                                SQLiteCommand cds = new SQLiteCommand(sqls, b.lian(path));
                                //执行
                                SQLiteDataReader drs = cds.ExecuteReader();
                                if (drs.Read())//读取
                                {
                                    string count;
                                    string sqlc = "select count(*) as num from '" + str + "';";//获取消息数量
                                    //加载sql
                                    SQLiteCommand cdsc = new SQLiteCommand(sqlc, b.lian(path));
                                    //执行
                                    SQLiteDataReader drc = cdsc.ExecuteReader();
                                    if (drc.Read())
                                    {
                                        count = drc["num"].ToString();
                                        //Console.Write(count+"\n");
                                    }
                                    //Console.Write(drs["uin"]);
                                    DateTime d = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));//将时间戳转年月日
                                    long t = long.Parse(drs["time"] + "0000000");
                                    TimeSpan to = new TimeSpan(t);
                                    //Console.Write(d.Add(to) + "\n");
                                    var time6 = d.Add(to);
                                    suoyou y = new suoyou();
                                    y.uin = drs["uin"].ToString();
                                    y.utime = time6.ToString();
                                    y.unum = drc["num"].ToString();
                                    s.Add(y);
                                    ListViewItem lt = new ListViewItem();
                                    //将数据库数据转变成ListView类型的一行数据
                                    
                                }
                            }
                            else if (qunp == "tb_TroopMsg_" && str.Length > 16)//过滤表名开头是troopm但小于12个字符,因为这不是有内容的表
                            {//判断是群消息
                                //if (str.Length > 16 && qunp == "tb_TroopMsg_")
                                //{
                                string qun;
                                try
                                {
                                    Console.Write(str + ".." + str.Length + "\n");
                                    //string pan1 = str.Substring(9, 12);
                                    qun = str.Substring(12);
                                    Console.Write(qun + "\n");
                                }
                                catch (Exception e2)
                                {
                                    Console.Write(e2 + "群错");
                                }
                                //}
                                string pp = str.Substring(0, 12);

                                if (pp == "tb_TroopMsg_" && str.Length > 12)
                                {
                                    //string pan1 = str.Substring(0, str.Length);
                                    //Console.Write(pan1 + "\n"+str.Length+"\n");
                                    //string qun = str.Substring(4, str.Length);
                                    //Console.Write(str+"\n");
                                    string sqls = "select * from '" + str + "';";
                                    //加载sql
                                    SQLiteCommand cds = new SQLiteCommand(sqls, b.lian(path));
                                    //执行
                                    SQLiteDataReader drs = cds.ExecuteReader();
                                    if (drs.Read())//读取
                                    {
                                        string count;
                                        string sqlc = "select count(*) as num from '" + str + "';";//获取消息数量
                                        //加载sql
                                        SQLiteCommand cdsc = new SQLiteCommand(sqlc, b.lian(path));
                                        //执行
                                        SQLiteDataReader drc = cdsc.ExecuteReader();
                                        if (drc.Read())
                                        {
                                            count = drc["num"].ToString();
                                            //Console.Write(count+"\n");
                                        }
                                        //Console.Write(drs["uin"]);
                                        DateTime d = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));//将时间戳转年月日
                                        long t = long.Parse(drs["MsgTime"] + "0000000");
                                        TimeSpan to = new TimeSpan(t);
                                        //Console.Write(d.Add(to) + "\n");
                                        var time6 = d.Add(to);
                                        suoyou y = new suoyou();
                                        y.qname = "群" + str.Substring(12);
                                        y.qtime = time6.ToString();
                                        y.qnum = drc["num"].ToString();
                                       
                                    }
                                }
                                //string str1 = dr["name"].ToString();
                                //string pan1 = str1.Substring(0, 9);
                                //Console.Write(str + "\n");
                                // pan1 = pp.Substring(0, pp.Length);
                                //Console.Write(pan1+"\n");
                            }
                            else
                            {
                                Console.Write(str + "群不匹配");
                            }
                        }
                        else
                        {
                            Console.Write(str + "用户消息不匹配");
                        }
                    }
                    catch (Exception e1)
                    {
                        Console.Write(e1 + "下面的出错了");
                    }
                }
        return s;
        }
            
        }

cha中chasuoyou方法返回值是list ,将查询的数据存进对象,再将对象放进list

下面是取出值

cha c = new cha();
                 List<suoyou> s=c.chasuoyou(wenpath);
                 for (int i = 0; i < s.Count;i++ )
                 {
                     ListViewItem lt = new ListViewItem();
                     lt.Text = s[i].uin;
                     lt.SubItems.Add(s[i].utime);
                     lt.SubItems.Add(s[i].unum);
                     //将lt数据添加到listView1控件中
                     listView1.Items.Add(lt);
                     Console.Write(s[0].unum);
                 }

下面是完整代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SQLite;
using System.IO;
namespace qq
{

    public partial class Form1 : Form
    {
        class db
        {
            private SQLiteConnection dbConnection;
            //private SQLiteCommand cd;
            //private SQLiteDataReader read;

            public SQLiteConnection lian(string path)
            {
                //创建连接字符串
                try
                {
                    string databaseFileName = path;
                    string connectionString = "data source = " + databaseFileName;
                    //链接数据库
                    dbConnection = new SQLiteConnection(connectionString);
                    dbConnection.Open();
                }
                catch (Exception e)
                {
                    Console.Write(e + "对象");
                }
                return dbConnection;
            }

        }
        class suoyou {
            //private string utime;
           // private string uin;
            //private int flag;
           // //private string unum;
           // private string qnum;
           // private string qtime;
           // private string qname;

            public string qname
            {
                get;
                set;
            }
            public string qtime
            {
                get;
                set;
            }
            public string qnum
            {
                get;
                set;
            }
            public string unum
            {
                get;
                set;
            }
            public string utime { 
                get; 
                set; 
            }
            public string uin {
                get;
                set;
            }
            public int flag {
                get;
                set;
            }
        }
        class cha { 
        public List<suoyou> chasuoyou(string wenpath){
        string qunp;
                db b = new db();
                
                List<suoyou> s=new List<suoyou>();

                //创建连接字符串
                string path = wenpath;

                //string databaseFileName = "C:/QQ.db";
                //string connectionString = "data source = " + databaseFileName;
                //链接数据库
                //SQLiteConnection dbConnection = new SQLiteConnection(connectionString);
                //打开数据库
                //dbConnection.Open();
                //sql语句
                string sql = "select name from sqlite_master where type='table' order by name;";
                //加载sql
                SQLiteCommand cd = new SQLiteCommand(sql, b.lian(path));
                //执行
                SQLiteDataReader dr = cd.ExecuteReader();
                //
                //查询所有表名
                while (dr.Read())//读取
                {
                    try
                    {
                        //Console.Write(dr["name"]+"\n");
                        string str = dr["name"].ToString();
                        if (str.Length > 12)//过滤小于9的表名,因为用户消息与群消息的表名都大于9
                        {
                            qunp = str.Substring(0, 12);
                            string pan = str.Substring(0, 9);
                            //Console.Write(pan + "\n" + "我是");
                            if (pan == "tb_c2cMsg")
                            {//判断是用户消息还是群消息
                                string pp = str;
                                //string str1 = dr["name"].ToString();
                                //string pan1 = str1.Substring(0, 9);
                                //Console.Write(str + "\n");
                                string sqls = "select * from '" + str + "';";
                                //加载sql
                                SQLiteCommand cds = new SQLiteCommand(sqls, b.lian(path));
                                //执行
                                SQLiteDataReader drs = cds.ExecuteReader();
                                if (drs.Read())//读取
                                {
                                    string count;
                                    string sqlc = "select count(*) as num from '" + str + "';";//获取消息数量
                                    //加载sql
                                    SQLiteCommand cdsc = new SQLiteCommand(sqlc, b.lian(path));
                                    //执行
                                    SQLiteDataReader drc = cdsc.ExecuteReader();
                                    if (drc.Read())
                                    {
                                        count = drc["num"].ToString();
                                        //Console.Write(count+"\n");
                                    }
                                    //Console.Write(drs["uin"]);
                                    DateTime d = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));//将时间戳转年月日
                                    long t = long.Parse(drs["time"] + "0000000");
                                    TimeSpan to = new TimeSpan(t);
                                    //Console.Write(d.Add(to) + "\n");
                                    var time6 = d.Add(to);
                                    suoyou y = new suoyou();
                                    y.uin = drs["uin"].ToString();
                                    y.utime = time6.ToString();
                                    y.unum = drc["num"].ToString();
                                    s.Add(y);
                                    ListViewItem lt = new ListViewItem();
                                    //将数据库数据转变成ListView类型的一行数据
                                    
                                }
                            }
                            else if (qunp == "tb_TroopMsg_" && str.Length > 16)//过滤表名开头是troopm但小于12个字符,因为这不是有内容的表
                            {//判断是群消息
                                //if (str.Length > 16 && qunp == "tb_TroopMsg_")
                                //{
                                string qun;
                                try
                                {
                                    Console.Write(str + ".." + str.Length + "\n");
                                    //string pan1 = str.Substring(9, 12);
                                    qun = str.Substring(12);
                                    Console.Write(qun + "\n");
                                }
                                catch (Exception e2)
                                {
                                    Console.Write(e2 + "群错");
                                }
                                //}
                                string pp = str.Substring(0, 12);

                                if (pp == "tb_TroopMsg_" && str.Length > 12)
                                {
                                    //string pan1 = str.Substring(0, str.Length);
                                    //Console.Write(pan1 + "\n"+str.Length+"\n");
                                    //string qun = str.Substring(4, str.Length);
                                    //Console.Write(str+"\n");
                                    string sqls = "select * from '" + str + "';";
                                    //加载sql
                                    SQLiteCommand cds = new SQLiteCommand(sqls, b.lian(path));
                                    //执行
                                    SQLiteDataReader drs = cds.ExecuteReader();
                                    if (drs.Read())//读取
                                    {
                                        string count;
                                        string sqlc = "select count(*) as num from '" + str + "';";//获取消息数量
                                        //加载sql
                                        SQLiteCommand cdsc = new SQLiteCommand(sqlc, b.lian(path));
                                        //执行
                                        SQLiteDataReader drc = cdsc.ExecuteReader();
                                        if (drc.Read())
                                        {
                                            count = drc["num"].ToString();
                                            //Console.Write(count+"\n");
                                        }
                                        //Console.Write(drs["uin"]);
                                        DateTime d = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));//将时间戳转年月日
                                        long t = long.Parse(drs["MsgTime"] + "0000000");
                                        TimeSpan to = new TimeSpan(t);
                                        //Console.Write(d.Add(to) + "\n");
                                        var time6 = d.Add(to);
                                        suoyou y = new suoyou();
                                        y.qname = "群" + str.Substring(12);
                                        y.qtime = time6.ToString();
                                        y.qnum = drc["num"].ToString();
                                       
                                    }
                                }
                                //string str1 = dr["name"].ToString();
                                //string pan1 = str1.Substring(0, 9);
                                //Console.Write(str + "\n");
                                // pan1 = pp.Substring(0, pp.Length);
                                //Console.Write(pan1+"\n");
                            }
                            else
                            {
                                Console.Write(str + "群不匹配");
                            }
                        }
                        else
                        {
                            Console.Write(str + "用户消息不匹配");
                        }
                    }
                    catch (Exception e1)
                    {
                        Console.Write(e1 + "下面的出错了");
                    }
                }
        return s;
        }
            
        }
        public Form1()
        {
            InitializeComponent();
        }
        string wenpath;
        private void Form1_Load(object sender, EventArgs e)
        {
            
        }

        
        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog P_File_Folder = new OpenFileDialog();
             P_File_Folder.Multiselect = true;//该值确定是否可以选择多个文件
             P_File_Folder.Title = "请选择文件夹";
             P_File_Folder.Filter = "QQ.db(QQ.db)|QQ.db";
             if (P_File_Folder.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    string file = P_File_Folder.FileName;
                    wenpath = file;
                    Console.Write(file);
                }

            
        }

       

      

        private void button3_Click(object sender, EventArgs e)
        {
            //查找数据 显示所有表
            if (wenpath != null && wenpath != "")
            {
                cha c = new cha();
                 List<suoyou> s=c.chasuoyou(wenpath);
                 for (int i = 0; i < s.Count;i++ )
                 {
                     ListViewItem lt = new ListViewItem();
                     lt.Text = s[i].uin;
                     lt.SubItems.Add(s[i].utime);
                     lt.SubItems.Add(s[i].unum);
                     //将lt数据添加到listView1控件中
                     listView1.Items.Add(lt);
                     Console.Write(s[0].unum);
                 }
            }
            else
            {
                MessageBox.Show("还没选对应QQ.db文件");
            }
        }
    }
}
/*
//创建连接字符串
            db b = new db();
            //创建连接字符串
            string path = "C:/QQ.db";
            //string s = "tb_c2cMsg_1030031037";            //sql语句
            string s = "tb_c2cMsg_1030331506";
            string count;
            int c;
            string sqlc = "select count(*) as num from '" + s + "';";//获取消息数量
            //加载sql
            SQLiteCommand cdsc = new SQLiteCommand(sqlc, b.lian(path));
            //执行
            SQLiteDataReader drc = cdsc.ExecuteReader();
            if (drc.Read())
            {
                c = drc.GetInt32(drc.GetOrdinal("num")); 
                count = drc["num"].ToString();
                Console.Write(count+"\n"+c);
                if (c != 0)
                {
                    string ui3 = "p";
                    FileStream stream = File.Create("c:\\jl\\" + ui3 + ".txt");
                    // FileStream fs1 = new FileStream("c:\\jl\\'" + uin3 + "'.txt", FileMode.Create, FileAccess.Write);//创建写入文件                //设置文件属性为隐藏
                    // System.IO.File.SetAttributes(@"c:\\users\\cc\\desktop\\jl\\'" + uin + "'.txt", FileAttributes.Hidden);
                    StreamWriter sw = new StreamWriter(stream);
                    string sql = "select * from '" + s + "'";
                    //加载sql
                    SQLiteCommand cd = new SQLiteCommand(sql, b.lian(path));
                    //执行
                    SQLiteDataReader dr = cd.ExecuteReader();
                    while (dr.Read())//读取
                    {
                        DateTime d = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));//将时间戳转年月日
                        long t = long.Parse(dr["time"] + "0000000");
                        TimeSpan to = new TimeSpan(t);
                        Console.Write(d.Add(to) + "\n");
                        var time6 = d.Add(to);
                        string uin = dr["uin"].ToString();
                        int panduan = dr.GetInt32(dr.GetOrdinal("flag"));
                        //Console.Write(panduan);
                        if (panduan == 1)
                        {
                            Console.Write("对方-----"+time6);
                        }
                        else
                        {
                            Console.Write("我-------"+time6);
                        }


                        //var tempStr =dr["time"];
                        var p = dr["content"];
                        //获取纯文本用getstring   获取序号用getordinal  获取数字用getint32
                        Console.Write(p + "\n");


                        string uin3 = "0";
                        
                        if (panduan == 1)
                        {
                            Console.Write("对方");
                            sw.WriteLine("对方--------" +time6+ "\n"+"_____________________________"+"");//开始写入值
                        }
                        else
                        {
                            Console.Write("我");
                            sw.WriteLine("我-------"+time6 + "\n");//开始写入值
                        }
                        sw.WriteLine(p + "\n");//开始写入值

                    } sw.Close();
                    stream.Close();
                }
                else {
                    Console.Write("表空");
                }
            }
            */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值