
比如這個圖,我輸入身份證,能得到編號幾嗎?
比如。我輸入19910101,得到編號1。
C#怎么實作?各種面向百度找不到。。
感覺大佬了!
uj5u.com熱心網友回復:
建議先把execl里面所有列一起讀出封裝起來,想讀哪個都行比如編號、姓名、身份證,封裝成物件,全部放在list里面...至于怎么拿里面的資料,百度吧uj5u.com熱心網友回復:
你的操作應該是先把excel資料讀取到記憶體中,然后通過linq查詢的方式去找資料。uj5u.com熱心網友回復:
先用NPOI讀到記憶體,再遍歷讀取就好了uj5u.com熱心網友回復:
NPOI,CloseXML.uj5u.com熱心網友回復:
將excel資料表匯入資料庫再查詢讀取uj5u.com熱心網友回復:
解決了。多謝樓上各位的紙上談兵。第一步,將excel轉為DataTable,
第二步,Select方法解決。
也是簡單明了,Nice!
DataTable dt = Excel_ylz1.XlsxToDataTable("庫.xlsx");
DataRow[] s = dt.Select("身份證號='203255515'");
Console.WriteLine(s[0].ItemArray[2]);
uj5u.com熱心網友回復:
用 oledb excel 作為資料源查詢,select 編號 from sheet1 where 身份證 = ‘19910101’uj5u.com熱心網友回復:
參考這兩個命名空間
using System.Collections.Generic;
using System.Data;
安裝:AccessDatabaseEngine 這個插件
代碼如下
static void Main(string[] args)
{
string filePath = @"你放檔案的路徑";
string strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1';";
System.Data.OleDb.OleDbConnection myConn = new System.Data.OleDb.OleDbConnection(strCon);
myConn.Open();
DataTable schemaTable = myConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
string tableName = schemaTable.Rows[0][2].ToString().Trim();//標簽名
string strCom = "Select * from [Sheet1$]";//查詢陳述句
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, myConn);
//創建一個DataSet物件
DataSet myDataSet = new DataSet();
//得到自己的DataSet物件
myCommand.Fill(myDataSet);
//關閉此資料鏈接
myConn.Close();
DataTable dtTask = myDataSet.Tables[0];
List<userInfo> list = new List<userInfo>();
for (int k = 0; k < dtTask.Rows.Count; k++)
{
userInfo model = new userInfo();
model.id =Convert.ToInt32(dtTask.Rows[k]["編號"].ToString());
model.name = dtTask.Rows[k]["姓名"].ToString();
model.identity = dtTask.Rows[k]["身份證"].ToString();
list.Add(model);
}
Console.WriteLine("查詢條數" + list.Count());
Console.WriteLine("請輸入身份證號");
string Identity = Console.ReadLine();
int id = (list.Where(o => o.identity == Identity).FirstOrDefault() ?? new userInfo()).id;
if (id > 0)
{
Console.WriteLine("您要查找的編號是:" + id);
}
else
{
Console.WriteLine("沒有找到您要查找的編號!");
}
}
public class userInfo
{
/// <summary>
/// 編號
/// </summary>
public int id { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string name { get; set; }
/// <summary>
/// 身份證
/// </summary>
public string identity { get; set; }
}
uj5u.com熱心網友回復:
可以用LINQ查uj5u.com熱心網友回復:
樓上有人說的對,用 oledb 簡單還又快速轉載請註明出處,本文鏈接:https://www.uj5u.com/net/6801.html
標籤:C#
