`

C#(winForm)写在公共类的几个常用方法

    博客分类:
  • c#
阅读更多

 C#(winForm)写在公共类的几个常用方法
/*****************************************************************************      说明
** 1.获取数据库的连接,返回值需判断是否为null-----------GetSqlConnection
*  2.根据Select--查询语句,返回DataSet-------------------GetDataSet
*  3.使用数据库内容填充DataGrid----------------FillDataGridFromSQLString
*  4.使用数据库内容填充DataGrid----------------FillDataGridFromSQLString(重载)
*  5、返回SQL语句所查询出来的行数-------------------------------GetRowCount
*  6.填充下拉列表------------------------------------------FillComboBox*   
   7.由一条SQL语句生成一个DataReader;返回值需要判断是否为空------GetDataReader
*  8.返回单个查询数据:第一列,第一行的值-------------------GetFirstData
*  9.对数据库中的一条记录操作:增、删、更新---------------ExecuteCommand
*  10.对数据库进行增删改操作-----------------------------ExecuteCommand2
*  11.判断str是不是全是由数字构成-------------------------IsNumeric
*  12.检测含有中文字符串的实际长度------------------------len
***************************************************************************/
using System;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;
namespace Tayside.Common
{
   /// <summary>
   /// DataBase 的摘要说明。
   /// </summary>
   public class DataBase
   {
      public DataBase()
      {
      }
      /// <summary>
      /// 1.获取数据库的连接,返回值需判断是否为null
      /// </summary>
      /// <returns></returns>
      public static SqlConnection GetSqlConnection()
      {
         string strCnn = "Server=192.168.12.136;database=Tayside;user ;
         try
         {
            SqlConnection sqlCnn = new SqlConnection(strCnn);
            sqlCnn.Open();
            return sqlCnn;
         }
         catch(Exception ee)
         {
            string temp=ee.Message;
            return null;
         }
      }

      /// <summary>
      /// 获取SqlCommand对象
      /// </summary>
      /// <returns></returns>
      public static SqlCommand GetSqlCommand()
      {
         SqlConnection sqlCnn = GetSqlConnection();
         if(sqlCnn == null)
            return null;
         else
         {
            SqlCommand sqlCmm = new SqlCommand();
            sqlCmm.Connection = sqlCnn;
            return sqlCmm;
         }
      }

      /// <summary>
      /// 2.根据Select--查询语句,返回DataSet
      /// </summary>
      /// <param >Select SQL语句</param>
      /// <returns>返回值需判断是否为空</returns>
      public static DataSet GetDataSet(string strSql)
      {
         try
         {
            using( SqlConnection sqlCnn = GetSqlConnection() )
            {
               SqlDataAdapter dataAdapter = new SqlDataAdapter( strSql, sqlCnn );
               DataSet dataSet = new DataSet();
               dataAdapter.Fill( dataSet );
               return dataSet; 
            }
         }
         catch
         {
            return null;
         }
      }

      /// <summary>
      /// 3.使用数据库内容填充DataGrid
      /// </summary>
      /// <param >要填充的DataGrid</param>
      /// <param >要获取数据库内容的SQL字符串</param>
      /// <returns></returns>
      public static bool FillDataGridFromSQLString( DataGrid dataGrid,string strSql)
      {
         try
         {
            DataSet ds = GetDataSet(strSql);
            dataGrid.SetDataBinding(ds, "");

            return true;
         }
         catch(Exception ee)
         {
            string t=ee.Message;
            return false;
         }
      }

      /// <summary>
      /// 4.使用数据库内容填充DataGrid
      /// </summary>
      /// <param >要填充的DataGrid</param>
      /// <param >要获取数据库内容的SQL字符串</param>
      /// <param >要添充DataGrid的表名</param>
      /// <returns></returns>
      public static bool FillDataGridFromSQLString( DataGrid dataGrid,string strSql,string table)
      {
         try
         {
            DataSet ds = GetDataSet(strSql);
            dataGrid.SetDataBinding(ds, table);

            return true;
         }
         catch(Exception ee)
         {
            string t=ee.Message;
            return false;
         }
      }

      /// <summary>
      /// 5、返回SQL语句所查询出来的行数
      /// </summary>
      /// <param ></param>
      /// <returns></returns>
      public static int GetRowCount(string strSql)
      {
         DataSet ds = GetDataSet(strSql);
         int count = ds.Tables[0].Rows.Count;
         return count;
      }

      /// <summary>
      /// 6.填充下拉列表
      /// </summary>
      /// <param >要添充的ComboBox</param>
      /// <param >查询语句</param>
      /// <returns>是否成功</returns>
      public static bool FillComboBox(ComboBox cmBox,string strSql)
      {
         try
         {
            using(SqlConnection sqlCnn = GetSqlConnection())
            {
               SqlDataReader dr = GetDataReader(strSql);
               while(dr.Read())
               {
                  cmBox.Items.Add(dr.GetValue(0));
               }
               return true;
            }
         }
         catch
         {
            return false;
         }
      }

      /// <summary>
      /// 7.由一条SQL语句生成一个DataReader;返回值需要判断是否为空
      /// </summary>
      /// <param >要使用的SQl语句</param>
      /// <returns></returns>
      public static SqlDataReader GetDataReader(string strSql)
      {
         try
         {
            SqlConnection sqlCnn = GetSqlConnection();
            SqlCommand sqlCmm = new SqlCommand(strSql,sqlCnn);
            return sqlCmm.ExecuteReader(CommandBehavior.CloseConnection);
         }
         catch
         {
            return null;
         }
      }

      /// <summary>
      /// 8.返回单个查询数据:第一列,第一行的值
      /// </summary>
      /// <param >Select SQL语句</param>
      /// <returns></returns>
      public static string GetFirstData(string strSql)
      {
         try
         {
            using( SqlConnection sqlCnn = GetSqlConnection() )
            {
               SqlCommand sqlCmm = new SqlCommand(strSql,sqlCnn);
               return sqlCmm.ExecuteScalar().ToString();
            }
         }
         catch
         {
            return "";
         }
      }

      /// <summary>
      /// 9.对数据库中的一条记录操作:增、删、更新
      /// </summary>
      /// <param >要执行的SQL语句</param>
      /// <returns>返回执行是否成功</returns>
      public static bool ExecuteCommand(string strSql)
      {
         try
         {
            using( SqlConnection sqlCnn = GetSqlConnection())
            {
               SqlCommand sqlCmm = new SqlCommand(strSql,sqlCnn);
               int temp = sqlCmm.ExecuteNonQuery();
               return  temp == 1;

            }
         }
         catch
         {
            return false;
         }

      }

      /// <summary>
      /// 10.对数据库进行增删改操作
      /// </summary>
      /// <param ></param>
      /// <returns></returns>
      public static bool ExecuteCommand2(string strSql)
      {
         try
         {
            using( SqlConnection sqlCnn = GetSqlConnection())
            {
               SqlCommand sqlCmm = new SqlCommand(strSql,sqlCnn);
               int temp = sqlCmm.ExecuteNonQuery();
               return  true;
            }
         }
         catch
         {
            return false;
         }
      }

      /// <summary>
      /// 11.判断str是不是全是由数字构成
      /// </summary>
      /// <param ></param>
      /// <returns></returns>
      public static bool IsNumeric(string str) 
      { 
         if (str==null || str.Length==0) 
            return false; 
         foreach(char c in str) 
         { 
            if (!Char.IsNumber(c)) 
            { 
               return false; 
            } 
         } 
         return true; 
      } 

      /// <summary>
      /// 12.检测含有中文字符串的实际长度
      /// </summary>
      /// <param >字符串</param>
      public static int len(string str)
      {
         System.Text.ASCIIEncoding n = new System.Text.ASCIIEncoding();
         byte[] b = n.GetBytes(str);
         int l = 0; // l 为字符串的实际长度
         for (int i=0;i <= b.Length-1;i++)
         {
            if (b[i] ==63) //判断是否为汉字或全脚符号
            {
               l++;
            }
            l++;
         }   
         return l;
      }     }
}

分享到:
评论

相关推荐

    c# WinForm 窗体之间传值的几种方式(小结)

    c# WinForm 窗体之间传值的几种方式小结 在WinForm开发中,窗体之间传值是一种常见的需求。今天,我们将介绍WinForm 窗体之间传值的几种方式,帮助开发者更好地解决这个问题。 方式一:使用公共静态变量传值 在这...

    C# winform 国际化

    在C# WinForm应用开发中,国际化(Internationalization)是一个重要的功能,允许应用程序适应不同语言和文化环境。本文将深入探讨如何实现C# WinForm应用的国际化,包括菜单国际化和资源国际化。 首先,我们需要...

    C# Winform自定义电池控件 进度条

    在C# WinForm应用开发中,自定义控件是一种常见的需求,这有助于提供更符合用户界面设计或功能特性的交互元素。本主题将深入探讨如何创建一个自定义的电池控件,结合进度条功能,以增强用户体验。我们将讨论以下几个...

    C# Winform 仿Win8进度条

    在本文中,我们将详细探讨如何在C# Winform应用中实现这个功能。 首先,我们需要了解Windows 8进度条的设计特点。Win8进度条通常具有扁平化设计,颜色鲜明且简洁,具有良好的可读性和视觉吸引力。它的外观通常包括...

    窗体间数据的同步(C# WinForm)

    在C# WinForm应用开发中,窗体间的数据同步是一个重要的功能,特别是在多个窗口或对话框需要共享数据的场景下。窗体间数据同步的主要目的是确保用户在不同界面操作时,数据能即时更新,保持一致性。下面将详细介绍...

    基于C#的WinForm窗体传值方法探讨.pdf

    - **使用公共类或服务层**: 创建一个公共类或服务层来管理数据的传递。这种方式更加结构化,易于维护。 #### 五、结论 本文介绍了C# WinForm应用程序中几种常见的窗体间数据传递方法,包括属性传值、构造函数传值...

    C# WinForm开发的颜色选择器控件,支持透明度。

    在C#编程环境中,WinForm是一个常用的用户界面框架,用于构建桌面应用程序。在这个特定的项目中,我们讨论的是一个自定义的控件——颜色选择器,它特别强调了对透明度的支持。这样的控件在设计界面时非常有用,特别...

    C#自定义控件之Winform仪表盘控件.zip

    通过学习和实践这个"C#Winform仪表盘控件"项目,开发者不仅可以掌握自定义控件的创建方法,还能了解到如何利用图形绘制、事件处理和动画技术来提升用户体验。这个项目对于提升C# Winform开发技能,尤其是对于那些...

    C#WinForm自定义IP地址控件

    综上所述,创建一个C# WinForm的自定义IP地址控件涉及以下几个步骤: 1. 创建一个新的控件类,继承自Control。 2. 在类中添加TextBox子控件并布局。 3. 为每个TextBox添加事件处理,如验证输入的IP地址格式。 4. ...

    Winform 下拉带Checkbox 功能

    5. **API接口**:为了方便使用,控件可能提供了几个公共方法和属性,如`AddItem`(添加一个带复选框的项)、`ClearCheckedItems`(清除所有选中项)、`CheckedItems`(获取所有选中项的列表)等。 在实际应用中,...

    C#/WinForm插件程序实例

    在这个实例中,我们可能会看到以下几个关键知识点: 1. **用户控件(User Control)**:用户控件是WinForm中一种复合控件,可以将多个基本控件组合成一个自定义控件,以满足特定的需求。在本例中,用户控件可能被用来...

    winform窗体中嵌入网页与JS交互

    我们需要创建一个公共类和方法,并设置为`ObjectForScripting`,这样JavaScript就可以通过`window.external`对象访问这些方法: ```csharp [ComVisible(true)] public class ScriptingObject { public void ...

    双滑块TrackBar C#.Net

    在.NET框架中,C#是一种常用的编程语言,用于开发各种应用程序。在本示例中,我们关注的是一个特定的UI控件实现,即"双滑块TrackBar",也被称为"RangeTrackBar"。这个控件是标准Windows Forms库中的TrackBar控件的...

    C# Winform窗口之间传值的多种方法浅析

    在C# Winform应用开发中,窗口之间的数据传递是常见的需求。本文主要探讨了几种不同的方法,以便在多个窗体间灵活地交换信息。 1. **通过构造器传值** 这是最直观且简单的办法,适用于传递少量数据。例如,当你需要...

    C#的核心问题-WIN10系统无法响应触摸屏的按下和弹起事件怎么办.rar

    针对这一问题,我们可以从以下几个方面来寻找解决方案: 1. **系统设置检查**:首先,确保WIN10系统已开启触摸功能。进入“设置” -&gt; “设备” -&gt; “触摸”,确认触摸功能已启用。同时,检查是否有最新的触摸驱动...

    winform自定义MessageBox弹窗,可自行改变弹窗字体、样式

    4. **暴露公共方法**:为了让其他部分的代码能够调用这个自定义弹窗,我们需要在类中定义公共方法,如`ShowDialog`或`Show`,并接受必要的参数,如消息文本、标题、按钮类型等。 5. **定制字体和样式**:在自定义的...

    C#winform 基础

    在这个例子中,我们收集了几个文本框中的数据,并将它们拼接成一个字符串,最后显示在一个文本框中。 #### 三、控件介绍 ##### 1. 按钮(Button) - **简介**:用于触发特定事件或操作的控件。 - **事件**:主要...

    C#自定义控件:一个简单的圆形按钮源码

    在.NET Framework中,C#是一种常用的编程语言,用于开发Windows应用程序。Visual Studio 2010(VS2010)是微软提供的一个强大的集成开发环境(IDE),它支持C#编程并提供丰富的工具和功能。在本示例中,我们将深入...

    Winform 属性编辑器 propertyGrid示例 下拉列表框

    在Windows Forms(Winform)开发中,`PropertyGrid`控件是一个非常实用的工具,它允许用户以图形化的方式查看和编辑对象的属性。在某些场景下,我们可能需要为`PropertyGrid`添加自定义的功能,例如展示下拉列表框...

    winform窗体传值,给我点积分吧!

    在了解了窗体的基本显示模式之后,接下来我们将详细探讨几种常见的窗体间传值方法。 ##### 1. 通过构造函数传递 这是最直接也是最简单的方法之一。当创建一个新的窗体时,可以在构造函数中传递所需的值。 **优点*...

Global site tag (gtag.js) - Google Analytics