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 窗体之间传值的几种方式小结 在WinForm开发中,窗体之间传值是一种常见的需求。今天,我们将介绍WinForm 窗体之间传值的几种方式,帮助开发者更好地解决这个问题。 方式一:使用公共静态变量传值 在这...
在C# WinForm应用开发中,国际化(Internationalization)是一个重要的功能,允许应用程序适应不同语言和文化环境。本文将深入探讨如何实现C# WinForm应用的国际化,包括菜单国际化和资源国际化。 首先,我们需要...
在C# WinForm应用开发中,自定义控件是一种常见的需求,这有助于提供更符合用户界面设计或功能特性的交互元素。本主题将深入探讨如何创建一个自定义的电池控件,结合进度条功能,以增强用户体验。我们将讨论以下几个...
在本文中,我们将详细探讨如何在C# Winform应用中实现这个功能。 首先,我们需要了解Windows 8进度条的设计特点。Win8进度条通常具有扁平化设计,颜色鲜明且简洁,具有良好的可读性和视觉吸引力。它的外观通常包括...
在C# WinForm应用开发中,窗体间的数据同步是一个重要的功能,特别是在多个窗口或对话框需要共享数据的场景下。窗体间数据同步的主要目的是确保用户在不同界面操作时,数据能即时更新,保持一致性。下面将详细介绍...
- **使用公共类或服务层**: 创建一个公共类或服务层来管理数据的传递。这种方式更加结构化,易于维护。 #### 五、结论 本文介绍了C# WinForm应用程序中几种常见的窗体间数据传递方法,包括属性传值、构造函数传值...
在C#编程环境中,WinForm是一个常用的用户界面框架,用于构建桌面应用程序。在这个特定的项目中,我们讨论的是一个自定义的控件——颜色选择器,它特别强调了对透明度的支持。这样的控件在设计界面时非常有用,特别...
通过学习和实践这个"C#Winform仪表盘控件"项目,开发者不仅可以掌握自定义控件的创建方法,还能了解到如何利用图形绘制、事件处理和动画技术来提升用户体验。这个项目对于提升C# Winform开发技能,尤其是对于那些...
综上所述,创建一个C# WinForm的自定义IP地址控件涉及以下几个步骤: 1. 创建一个新的控件类,继承自Control。 2. 在类中添加TextBox子控件并布局。 3. 为每个TextBox添加事件处理,如验证输入的IP地址格式。 4. ...
5. **API接口**:为了方便使用,控件可能提供了几个公共方法和属性,如`AddItem`(添加一个带复选框的项)、`ClearCheckedItems`(清除所有选中项)、`CheckedItems`(获取所有选中项的列表)等。 在实际应用中,...
在这个实例中,我们可能会看到以下几个关键知识点: 1. **用户控件(User Control)**:用户控件是WinForm中一种复合控件,可以将多个基本控件组合成一个自定义控件,以满足特定的需求。在本例中,用户控件可能被用来...
我们需要创建一个公共类和方法,并设置为`ObjectForScripting`,这样JavaScript就可以通过`window.external`对象访问这些方法: ```csharp [ComVisible(true)] public class ScriptingObject { public void ...
在.NET框架中,C#是一种常用的编程语言,用于开发各种应用程序。在本示例中,我们关注的是一个特定的UI控件实现,即"双滑块TrackBar",也被称为"RangeTrackBar"。这个控件是标准Windows Forms库中的TrackBar控件的...
在C# Winform应用开发中,窗口之间的数据传递是常见的需求。本文主要探讨了几种不同的方法,以便在多个窗体间灵活地交换信息。 1. **通过构造器传值** 这是最直观且简单的办法,适用于传递少量数据。例如,当你需要...
针对这一问题,我们可以从以下几个方面来寻找解决方案: 1. **系统设置检查**:首先,确保WIN10系统已开启触摸功能。进入“设置” -> “设备” -> “触摸”,确认触摸功能已启用。同时,检查是否有最新的触摸驱动...
4. **暴露公共方法**:为了让其他部分的代码能够调用这个自定义弹窗,我们需要在类中定义公共方法,如`ShowDialog`或`Show`,并接受必要的参数,如消息文本、标题、按钮类型等。 5. **定制字体和样式**:在自定义的...
在这个例子中,我们收集了几个文本框中的数据,并将它们拼接成一个字符串,最后显示在一个文本框中。 #### 三、控件介绍 ##### 1. 按钮(Button) - **简介**:用于触发特定事件或操作的控件。 - **事件**:主要...
在.NET Framework中,C#是一种常用的编程语言,用于开发Windows应用程序。Visual Studio 2010(VS2010)是微软提供的一个强大的集成开发环境(IDE),它支持C#编程并提供丰富的工具和功能。在本示例中,我们将深入...
在Windows Forms(Winform)开发中,`PropertyGrid`控件是一个非常实用的工具,它允许用户以图形化的方式查看和编辑对象的属性。在某些场景下,我们可能需要为`PropertyGrid`添加自定义的功能,例如展示下拉列表框...
在了解了窗体的基本显示模式之后,接下来我们将详细探讨几种常见的窗体间传值方法。 ##### 1. 通过构造函数传递 这是最直接也是最简单的方法之一。当创建一个新的窗体时,可以在构造函数中传递所需的值。 **优点*...