如何判斷當前修改過的datatable的某一列值是否為int型或double類型

来源:https://www.cnblogs.com/ubantu/archive/2019/08/09/11326461.html
-Advertisement-
Play Games

如何判斷當前修改過的datatable的某一列值是否為int型或double類型 今天在做datatable數據驗證時碰到要對datatable的列數據進行數據類型校驗,因此記錄一下本人校驗的方法,如果還有更簡單的校驗方式,歡迎大家踴躍分享,不勝感激。 c / 取得改變過的datatable,註意不 ...


如何判斷當前修改過的datatable的某一列值是否為int型或double類型

今天在做datatable數據驗證時碰到要對datatable的列數據進行數據類型校驗,因此記錄一下本人校驗的方法,如果還有更簡單的校驗方式,歡迎大家踴躍分享,不勝感激。

/*
取得改變過的datatable,註意不能把原有的datatable執行AcceptChanges()方法,先執行Copy()新得到一個
當前經過修改後datatable
*/
DataTable dtTemp = ((DataTable)gridControl1.DataSource).Copy();
 dtTemp.AcceptChanges();
//判斷datatable是否為空
if (dtTemp.Rows.Count == 0)
{
   if(CommonFunction.ShowMsgBox("檢測到復稱列表為空,是否直接保存", MessageBoxButtons.YesNo, 0) == DialogResult.No)
   {
      return false;
   }
}
//以下是判斷當前經過修改後datatable是否有空值並若為空值則校驗不通過,若不為空值再進行數據類型的校驗
if (dtTemp.Rows.Count > 0)
{
   foreach (DataRow dr in ((DataTable)gridControl1.DataSource).Rows)
   {
      if (CommonFunction.Trim(Convert.ToString(dr["序號"]))=="")
      {
         CommonFunction.ShowMsgBox("檢測到復稱列表有未填項");
        return false;
       }
       /*
       通過int.TryParse(string s out Int32 result)進行整數類型的校驗
       該方法傳入兩個參數,第一個是字元串類型,第二個是轉化成功後輸出的整型變數
       如果轉化成功則該方法返回true並輸出轉化後的結果,該結果可進一步被使用來判斷數值範圍 
       如果轉化失敗則該方法返回false,即該datatable的該單元格中的內容不數據類型錯誤    
       */
      int iRecordSeq;          
      if(int.TryParse(Convert.ToString(dr["序號"]),out iRecordSeq) == false || iRecordSeq < 1)
      {
         CommonFunction.ShowMsgBox("復稱列表序號必須為大於0的整數");
         return false;
       }
       if (CommonFunction.Trim(Convert.ToString(dr["桶皮"])) == "")
        {
          CommonFunction.ShowMsgBox("檢測到復稱列表有未填項");
          return false;
        }
        double dTaerWeight;
        if (double.TryParse(Convert.ToString(dr["桶皮"]), out dTaerWeight) == false || dTaerWeight < 1)
         {
            CommonFunction.ShowMsgBox("復稱列表桶皮必須為大於0的數字");
           return false;
         }
         if (CommonFunction.Trim(Convert.ToString(dr["毛重"])) == "")
         {
            CommonFunction.ShowMsgBox("檢測到復稱列表有未填項");
            return false;
         }
         double dGrossWeight;
         if (double.TryParse(Convert.ToString(dr["毛重"]), out dGrossWeight) == false || dGrossWeight < 1)
         {
            CommonFunction.ShowMsgBox("復稱列表毛重必須為大於0的數字");
          return false;
         }
         if (CommonFunction.Trim(Convert.ToString(dr["單位"])) == "")
         {
            CommonFunction.ShowMsgBox("檢測到復稱列表有未填項");
            return false;
         }                 
     }
}    
//遍歷當前修改過後的datatable,看序號這一列是否存在重覆的值
foreach (DataRow dr in dtTemp.Rows)
{
  int iRecordSeq=Convert.ToInt32(dr["序號"]);
  if (dtTemp.Select("序號=" + iRecordSeq).Count() > 1)
  {
     CommonFunction.ShowMsgBox("檢測到復稱列表有重覆的序號,請檢查無誤後操作");
     return false;
   }            
}
return true;

至此,校驗完成。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一. 複雜標簽 1.1 下拉列表 select、option 必須將select和option結合在一起使用,才能形成完整的下拉列表結構,缺一不可。 格式: 註:在選中某一選項提交時,會將name值與選中選項的value形成鍵值對一併提交到伺服器。 selected屬性可以表示預設選中項,寫法與ch ...
  • 選擇圖像根據坐標得到圖像。 環境 Visual Studio 2019,dotNet Framework 4.0 SDK 支持Windows XP,Windows Win7、8、10 項目地址 效果 ...
  • 1.前言 ASP.NET Core應用程式可以配置和啟動主機(Host)。主機負責應用程式啟動和生存期管理,配置伺服器和請求處理管道。主機還可以設置日誌記錄、依賴關係註入和配置。而host主機又包括Web主機(IWebHostBuilder)和通用主機(IHostBuilder)。該章節主要介紹了用 ...
  • 一、百度語音合成 百度語音合成C# SDK主要是基於Rest API,需要互聯網調用HTTP介面,Rest API 僅支持最多512個漢字,合成的格式文件為MP3,沒有其它的格式。如果想離線使用需下載SDK,Android 或IOS。 1、安裝語音合成 C# SDK C# SDK 現已開源! htt ...
  • 原文地址:https://www.cnblogs.com/lsgsanxiao/p/5845300.html 略有刪改 1.配置文件,可以單獨創建log4net.config文件,然後手動指定目錄,也可以在項目的app.config或web.config的configuration節點下插入以下代碼 ...
  • 1、原程式代碼調用上傳介面文件路徑更改為父節點相對路徑: 2、修複ueditor.config.js配置: 3、IIS配置mime類別,添加相應的視頻文件尾碼配置。 例如:.mp4、.flv等 ...
  • 一張圖搞定 .NET Framework, .NET Core 和 .NET Standard 的區別 ...
  • 在學習 Xamarin.Forms Web 服務教程(https://docs.microsoft.com/zh-cn/xamarin/get-started/tutorials/web-service/index?tabs=vswin) 的時候,使用http 訪問API ,遇到了 "Clearte ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...