阿里妈妈,帮你实现网络赚钱梦,流量变成现金!
10-09
05

C#的DataGridViewHelper类

给力技术 - 给您提供最新最全的Web资源
      在网上看到的一个DataGridViewHelper类,收藏一下~~~
using System;
using System.Data;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Text;

namespace CleanCode.Forms
{
    public static class DataGridViewHelper
    {
        public static void ValidateFieldNames(
            DataGridView dataGridView, string[] columns)
        {
            List<string> list = new List<string>();
            foreach (string s in columns)
            {
                if (GetColumnIndex(dataGridView, s) < 0) { list.Add(s); }
            }
            if (list.Count > 0)
            {
                string msg = "Following have name mismatches between the "
                    + " query and the code:\n"
                    + string.Join(", ", list.ToArray());
                MessageBox.Show(msg, "Warning!", MessageBoxButtons.OK,
                    MessageBoxIcon.Warning,MessageBoxDefaultButton.Button1,
                    MessageBoxHelper.GetLocalizedMessageBoxOptions(dataGridView));
            }
        }

        public static int GetColumnIndex(
            DataGridView dataGridView, string columnName)
        {
            int idColumn = -1;
            for (int i = 0; i < dataGridView.Columns.Count; i++)
            {
                if (dataGridView.Columns[i].DataPropertyName.Equals(columnName)
                    || dataGridView.Columns[i].Name.Equals(columnName))
                    {
                    idColumn = i;
                }
            }
            return idColumn;
        }

        public static List<string> GetFilteredValues(
            DataGridView dataGridView, int columnIndex)
        {
            List<string> list = new List<string>();
            if (columnIndex >= 0)
            {
                for (int i = 0; i < dataGridView.Rows.Count; i++)
                {
                    list.Add(dataGridView[columnIndex, i].Value.ToString());
                }
            }
            return list;
        }

        public static List<string> GetFilteredValues(
            DataGridView dataGridView, string columnName)
        {
            return GetFilteredValues(dataGridView,
                GetColumnIndex(dataGridView, columnName));
        }

        public static int GetMatchingRowIndex(
            DataGridView dataGridView, int columnIndex, string value)
        {
            for (int i = 0; i < dataGridView.Rows.Count; i++)
            {
                if (value.Equals(
                    dataGridView[columnIndex, i].Value.ToString()))
                { return i; }
            }
            return -1;
        }

        public static int GetMatchingRowIndex(
            DataGridView dataGridView, string columnName, string value)
        {
            return GetMatchingRowIndex(dataGridView,
                GetColumnIndex(dataGridView, columnName), value);
        }

        public static string Lookup(DataGridView dataGridView,
            string keyFieldName, string targetFieldName, string keyValue)
        {
            int row = GetMatchingRowIndex(dataGridView,
                GetColumnIndex(dataGridView, keyFieldName), keyValue);
            return dataGridView[targetFieldName, row].Value.ToString();
        }
        
        public static Dictionary<string, string> GetDictionary(
            DataTable table, string idColumnName, string targetColumnName)
        {
            Dictionary<string, string> dict = new Dictionary<string, string>();
            foreach (DataRow row in table.Rows)
            {
                dict[row[idColumnName].ToString()] =
                    row[targetColumnName].ToString();
            }
            return dict;
        }
    
        public static bool IsCheckBox(
            DataGridView dataGridView, string columnName)
        {
            return IsCheckBox(
                dataGridView, GetColumnIndex(dataGridView, columnName));
        }

        public static bool IsCheckBox(
            DataGridView dataGridView, int columnIndex)
        {
            return (CKBOX_CELL_TYPE_NAME
                .Equals(dataGridView.Columns[columnIndex].CellType.Name));
        }

        public static void ReportDataType(DataTable dataTable)
        {
            foreach (DataColumn column in dataTable.Columns)
            {
                Console.WriteLine(string.Format("{0} = {1}", column.ColumnName, column.DataType));
            }
        }

    }
}


文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
文章标签: c# datagridview
网摘收录:
相关日志:
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 支持Gravatar头像.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.