一个可处理通用连接的自定义用户控件组合(smartCombo)

下载源文件- 43.39 KB 可处理通用型的自定义用户控件组合(smartCombo) 连接 介绍 欢迎阅读我在代码项目中的第一篇文章! 这是一个非常简单的c# windows应用程序,解释了如何 使用数据绑定创建combox的自定义控件。 我正在处理一个需要显示组合框的windows应用程序 这将用ValueMember和DisplayMember加载数据。我需要做的 这与物理插入查询比指定属性值。 值将根据用户定制。现在连接将是主要的 点。这里我使用了一个通用的IDBConnection SQLConnection、OledbConnection OdbcConnection等等。使用一些修改 可以使用任何类型的数据源

  

。这篇文章是那些想要展示的 数据在一个组合或想要自己控制。它会给你一个清晰的概念 关于这个。 背景 我创建了一个非常简单的windows窗体,上面有两个组合框。一个 当单击LoadData按钮时将被加载。另一个会被加载 当表单将被加载。这里我使用了一个继承的类SmartCombo 组合类。在这里,我使用了可以用于 设计时和运行时。这里我使用了一个组合(右边的组合) 在设计时加载数据的支持。左侧套餐,我用过 纯粹的运行时加载。运行时,用户将按下LoadData按钮 下面的代码将被执行。 隐藏,CodesmartCombo1副本。SetConnection = cn; smartCombo1。ValueID = " AccountNo”; smartCombo1。ValueText = "帐号名称”; smartCombo1。表名=“tblAccountInfo”; smartCombo1。WhereCondition = "AccountNo = “0000000112”; //这里我们可以用like / / smartCombo1。WhereCondition = / /“帐号名称% HO %”; smartCombo1.SetDataSource (ProviderType.SqlServer); 其他方式,我们可以使设计时SmartCombo属性设置: 属性设置后,必须添加以下代码以获取 某些数据 隐藏,复制代码//连接是通用的。 //你可以用any / /连接(SQLConnection Oledb, Odbc) cn.Open (); smartCombo2。SetConnection = cn; smartCombo2.SetDataSource (ProviderType.SqlServer); 这里TableName =我想要加载数据的表名 ValueID =将被视为ID等隐藏值的字段名 ValueText =将作为显示成员处理的字段名 代码 编码的主要部分如下。我在哪里用了a 枚举,用于选择适当的提供程序,如Sql、Oledb、 Odbc、Oracle等等。这里没有实现Oracle。还有一些属性要演示 定制的表和字段。 隐藏,收缩,复制Codeusing系统; 使用System.Collections.Generic; 使用text; 使用System.Windows.Forms; 使用System.Data; 名称空间CustomComboDataBinding { 类SmartCombo:组合框 { 区域私有变量集合 私人IDbConnection _iConnection; 私人字符串_TableName; 私人字符串_valueID; 私人字符串_valueText; 私人字符串_whereCond = " "; # endregion #区域属性集合 / / / & lt; summary> ///设置通用连接 / / / SQLConnection、OLEDBConnection / / / ODBCCOnnection接受 / / / & lt; / summary> 公共IDbConnection SetConnection { 获取{return _iConnection;} 设置{_iConnection = value;} } / / / & lt; summary> ///设置或获取表名 / / / & lt; / summary> 公共字符串表 { {_TableName = value;} return _TableName;} } / / / & lt; summary> ///获取或设置 ///将不显示的项 ///但按ID处理 / / / & lt; / summary> 公共字符串ValueID { 设置{_valueID = value;} 获取{return _valueID;} } / / / & lt; summary> ///获取或设置将为的项 ///智能组合显示 / / / & lt; / summary> 公共字符串ValueText { 获取{return _valueText;} 设置{_valueText = value;} } / / / & lt; summary> ///获取隐藏的项 ///或作为一个ID或 ///从ValueID设置 / / / & lt; / summary> 公共字符串值 { 返回base.SelectedValue.ToString();} } / / / & lt; summary> ///获取智能组合的显示项 / / / & lt; / summary> 公共字符串文本 { 获取{return base.Text;} } 公共字符串WhereCondition { get {return _whereCond;} set {_whereCond = value;} } # endregion / / / & lt; summary> /// SetDatasource执行最终的 ///代码行数。它会加载 ///数据根据给定的属性。 / / / & lt; / summary> public void SetDataSource(ProviderType pType) { IDbDataAdapter iadpt; IDbCommand iCmd; 字符串strSQL; 数据集d; 试一试 { if (WhereCondition == "") { Select [" + ValueID + "], [" + ValueText + "] FROM [" + TableName + "] "; } 其他的 { Select [" + ValueID + "], [" + ValueText + "] FROM [" + TableName + "] WHERE " + WhereCondition; } iCmd = GetCommand (pType); iCmd。连接= SetConnection; iCmd。CommandText = strSQL; iadpt = GetAdapter (pType); iadpt。SelectCommand = iCmd; ds = new DataSet(); iadpt.Fill (ds); DataTable dt = MakeTable(); dt = ds.Tables [0]; 基地。DisplayMember = ValueText; 基地。ValueMember = ValueID; 基地。数据源= dt.DefaultView; } 捕获(异常交货) { 把交货; } } #地区私有函数 私人DataTable MakeTable () { DataTable dt; dt = new DataTable("Source"); dt.Columns.Add (ValueID); dt.Columns.Add (ValueText); 返回dt; } 私有IDbDataAdapter GetAdapter(提供程序类型pType) { if (pType == ProviderType.SqlServer) { 返回新System.Data.SqlClient.SqlDataAdapter (); } else if(pType == ProviderType.Oledb) { 返回新System.Data.OleDb.OleDbDataAdapter (); } else if(pType == ProviderType.Odbc) { 返回新System.Data.Odbc.OdbcDataAdapter (); } 返回null; } 私有IDbCommand GetCommand(ProviderType pType) { if (pType == ProviderType.SqlServer) { 返回新System.Data.SqlClient.SqlCommand (); } else if (pType == ProviderType.Oledb) { 返回新System.Data.OleDb.OleDbCommand (); } else if (pType == ProviderType.Odbc) { 返回新System.Data.Odbc.OdbcCommand (); } 返回null; } # endregion } / / / & lt; summary> / / / ProviderType enum。 / / / & lt; / summary> 公共enum ProviderType { ,状态"置疑" Oledb, Odbc } } 代码的作用是什么? 这段代码演示 如何使用户控件以某种自定义的方式工作。这里有 实现一个组合框,并将其作为每个开发人员的自定义数据绑定 正在被使用。我称之为智能组合控制。 如何将其与现有代码集成 使用它呢? 答:编译后 项目只需从工具箱中拖放smartCombo控件并使用 这是很有必要的。 结论: 这是我关于代码的第一篇文章 项目。所以请给我适当的建议 细节: Md Arifuzzaman (微软认证 技术专家)协助数据库报告开发者 Metatude亚洲Ltd  达卡,Bangladesh  电子邮件:arif_uap@yahoo.com 本文转载于:http://www.diyabc.com/frontweb/news351.html

原文地址:https://www.cnblogs.com/Dincat/p/13438422.html