簡體   English   中英

如何使用 DataTable.Load() 加載字符串而不是數字?

[英]How to load strings with DataTable.Load() not as numbers?

我有以下代碼:

System.Data.DataSet ds = new System.Data.DataSet();
            System.Data.DataTable dataTable = ds.Tables.Add("Utilizatori");
            Microsoft.Office.Interop.Excel.Range range = Globals.Sheet13.Range["A7", "D12"];
            Microsoft.Office.Tools.Excel.ListObject listObject = Globals.Sheet13.Controls.AddListObject(range, "Utilizatori");

            try
            {
                dataTable.Clear();
                using (var cmd = new MySqlCommand())
                {
                    cmd.Connection = mySqlConnection;
                    cmd.CommandText = "SELECT id, telefon, e_mail, worksheet_name, adresa, nume FROM consumatori";
                    MySqlDataReader reader = cmd.ExecuteReader();
                    
                    dataTable.Load(reader, System.Data.LoadOption.OverwriteChanges);
                    listObject.AutoSetDataBoundColumnHeaders = true;
                    listObject.SetDataBinding(ds, "Utilizatori");
                }
            }
            catch (Exception exception)
            {
                System.Windows.Forms.MessageBox.Show(exception.Message);
            }

從“電話”字段中,我想檢索數字中以 0 開頭的數字。
現在,我的 Excel 表將“ 0 7xxxxxxxx”字符串作為數字輸入,例如 7xxxxxxxx。 我無法弄清楚這一點,加載方法將其轉換為數字,還是 Excel 表格格式將字符串轉換為數字?
謝謝您的幫助!

事實證明 Excel Sheet 是罪魁禍首。 我正在輸入數字,從 0 開始,他將它們格式化為數字。

foreach (Microsoft.Office.Interop.Excel.ListColumn column in listObject.ListColumns)
                    {
                        column.Range.Cells.NumberFormat = "@";
                    }

通過將格式設置為文本,它可以正確顯示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM