第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何從Excel工作表中獲取特定數(shù)據(jù)到文本框中

如何從Excel工作表中獲取特定數(shù)據(jù)到文本框中

C#
一只斗牛犬 2022-11-21 16:02:45
我想使用搜索查詢將特定數(shù)據(jù)從 Excel 工作表獲取到 winforms TextBoxes 中。像這樣的“從 [Sheet1] 中搜索 *,其中員工編號 = 1234”我試過這段代碼,但沒有用。每次我都遇到異常,連接未正確初始化。try{OleDbConnection con = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=Test.xls;Extended Properties=Excel 8.0;");           con.Open();           OleDbCommand oleDbCommand = new OleDbCommand("SELECT * FROM [Sheet1] where Staff Number=1234");              OleDbDataReader oleDbDataReader = oleDbCommand.ExecuteReader();                   TxtDateOfBirth.Text = oleDbDataReader.GetString(1);                   TxtName.Text=oleDbDataReader.GetString(2);....      }           catch(Exception ex)           {               MessageBox.Show(ex.ToString());           }這是一個(gè)簡單的表單,用戶將在其中輸入員工編號并在相關(guān)文本框中獲取此人的詳細(xì)信息。大多數(shù)“我的搜索”結(jié)果為我提供了將數(shù)據(jù)顯示到數(shù)據(jù)網(wǎng)格視圖中的解決方案,但我的問題有點(diǎn)不同,我知道我必須使用數(shù)據(jù)讀取器并執(zhí)行它,但不知道為什么會出現(xiàn)這個(gè)問題。
查看完整描述

2 回答

?
海綿寶寶撒

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊

稍微調(diào)整一下你的代碼..


改進(jìn)


更改了您的連接字符串,添加HDR=Yes;了指示第一行包含列名并且IMEX=1;告訴驅(qū)動(dòng)程序始終將“混合”(數(shù)字、日期、字符串等)數(shù)據(jù)列作為文本讀取的內(nèi)容。在使用員工數(shù)據(jù)庫時(shí),這些通常很有幫助。


問題


添加了變量以使其更清晰和完整的 xls 數(shù)據(jù)庫文件路徑。


按照上面其他幫助用戶的評論中的建議,添加了一個(gè)$afterSheet1并用 [] 包裝。[Staff Number]


添加oleDbDataReader.Read()以通讀結(jié)果,因?yàn)樯厦娴拇a中也缺少它。


下面的示例代碼對我有用。


try 

{           

    var xlsDbPath= "C:\\Temp\\Test.xls"; //<-- Full name of path

    var connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + xlsDbPath+ ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";

    var query = "SELECT * FROM [Sheet1$] WHERE [Staff Number] = 1234";  //<-- Add $ after Sheet1 and fix 'Staff Number'?


    using (var con = new OleDbConnection(connStr))

    {

        con.Open();

        using (var oleDbCommand = new OleDbCommand(query, con))

        {

            using (var oleDbDataReader = oleDbCommand.ExecuteReader())

            {

                while (oleDbDataReader.Read())  //Read through results

                {

                     TxtDateOfBirth.Text = oleDbDataReader.GetString(1);

                     TxtName.Text = oleDbDataReader.GetString(2);

                     //...  //Remember if value is not string you will get error

                     //...  //so if not string use .GetValue(1).ToString();

                } 

            }

        }

    }

}

catch (Exception ex)

{

    MessageBox.Show(ex.ToString());

}


查看完整回答
反對 回復(fù) 2022-11-21
?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊

在我看來,您的代碼中存在一些問題:

1- 您應(yīng)該將 Excel 文件的完整地址放在您的連接中,而不是“test.xls”。

2- 您的命令中“Staff”和“Number”之間有一個(gè)空格。如果列名是“StaffNumber”,則不應(yīng)有任何空格。我建議您先測試不帶 where 子句的命令。


查看完整回答
反對 回復(fù) 2022-11-21
  • 2 回答
  • 0 關(guān)注
  • 145 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號