关于汉字输入联想

本文介绍如何使用C#将Excel数据加载到内存并转换为DataTable,再通过LINQ进行字符串匹配查询的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,是数据源,我用的是一个Excel表

然后可以把表存在数据库里面,或者存在内存上面

我把excel导入到内存转化成table

然后用linq语句查找匹配的输入拼音

最后,输出前五个,备选

代码如下:

           string path = Environment.CurrentDirectory;
            path = @"D:\vsprogram\testWpf\testWpf\bin\Debug\1.xlsx";// @"\text.xlsx";
            dataTableDatas = LoadExcel(path);

 public DataTable LoadExcel(string pPath)
        {


            if (!File.Exists(pPath))
            {
                return null;
            }
            string conns = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=No;IMEX=1;'", pPath);
            conn = new OleDbConnection(conns);
            conn.Open();
            OleDbCommand cmd2 = new OleDbCommand();
            cmd2.Connection = conn;
            string sql = "select * from [Sheet1$]";// +sheetName.Replace('.', '#') + "$]";
            cmd2.CommandText = sql;
            OleDbDataAdapter da = new OleDbDataAdapter(cmd2);
            DataSet ds = new DataSet();
            try
            {
                da.Fill(ds);
                if (ds.Tables.Count > 0)
                {
                    return ds.Tables[0];
                }
                else
                {
                    return ds.Tables[0];
                }
            }
            catch
            {
                ds = null;
                throw new Exception("从Excel文件中获取数据时发生错误!");
            }
            finally
            {
                conn.Close();
                da.Dispose();
                ds.Dispose();
                GC.Collect();
            }
        }       


然后是linq访问table表,实现字符串匹配输出

   var obj = from soda in dataTableDatas.AsEnumerable() where GetStringFromRow(soda[1].ToString(), serch_s) select soda[2];

   object[] y = obj.ToArray();

然后是绑定到combobox里面 comboBox1.Items.AddRange(li.ToArray());

大概思路就是那样,具体字符串操作和条件还要仔细判断;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值