利用KeyValuePair生成sql键值对csharpVS2015

来源:互联网 发布:php新闻上传系统 编辑:程序博客网 时间:2024/06/05 03:57

环境 VS2015 C# 命令行语句测试


如题: 

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication1{    /// <summary>    /// 随便定一个    /// </summary>    public class MyMethod    {        public MyMethod()        {        }                //采用排序的Dictionary的好处是方便对数据包进行签名,不用再签名之前再做一次排序        private SortedDictionary<string, object> m_values = new SortedDictionary<string, object>();        /**        * 设置某个字段的值        * @param key 字段名         * @param value 字段值        */        public void SetValue(string key, object value)        {            m_values[key] = value;        }        /**        * 根据字段名获取某个字段的值        * @param key 字段名         * @return key对应的字段值        */        public object GetValue(string key)        {            object o = null;            m_values.TryGetValue(key, out o);            return o;        }        /**         * 判断某个字段是否已设置         * @param key 字段名         * @return 若字段key已被设置,则返回true,否则返回false         */        public bool IsSet(string key)        {            object o = null;            m_values.TryGetValue(key, out o);            if (null != o)                return true;            else                return false;        }        /**        * @获取Dictionary        */        public SortedDictionary<string, object> GetValues()        {            return m_values;        }        /*-------------------------------------------------------*/        /**        * @values生成插入语句        */        public string ToSQLStr_Insrt(string dataTable, string condition)        {            string str1 = "";            string str2 = "";            foreach (KeyValuePair<string, object> pair in m_values)            {                if (pair.Value == null)                {                    throw new Exception("Data内部含有值为null的字段!");                }                string[] type = pair.Key.ToString().Split(',');                str1 += string.Format(",`{0}`", type[1]);                string Value = pair.Value.ToString();                switch (type[0])                {                    case "string":                        {                            str2 += string.Format(",'{0}'", Value);                        }                        break;                    case "double":                        {                            str2 += string.Format(",{0:N2}", double.Parse(Value));                        }                        break;                    case "decimal":                        {                            str2 += string.Format(",{0:N2}", decimal.Parse(Value));                        }                        break;                    case "int":                        {                            str2 += string.Format(",{0:N}", int.Parse(Value));                        }                        break;                    default:                        break;                }            }            string sqlstr = "INSERT INTO `" + dataTable + "` (" + str1.Substring(1) + ") VALUES(" + str2.Substring(1) + ") " + condition;            return sqlstr;        }        /**       * @values生成删除语句       */        public string ToSQLStr_Delete(string dataTable, string condition)        {            string sqlstr = "DELETE FROM `" + dataTable + "` " + condition;            return sqlstr;        }        /**        * @values格式化成能在Web页面上显示的结果(因为web页面上不能直接输出xml格式的字符串)        */        public string ToSQLStr_Select(string dataTable, string condition)        {            string str = "";            foreach (KeyValuePair<string, object> pair in m_values)            {                str += string.Format(",`{0}`", pair.Key.ToString());            }            string sqlstr = "SELECT " + str.Substring(1) + "  FROM `" + dataTable + "` " + condition;            return sqlstr;        }        /**        * @values生成修改语句        */        public string ToSQLStr_Update(string dataTable, string condition)        {            string str = "";            foreach (KeyValuePair<string, object> pair in m_values)            {                if (pair.Value == null)                {                    throw new Exception("Data内部含有值为null的字段!");                }                string[] type = pair.Key.ToString().Split(',');                string Value = pair.Value.ToString();                switch (type[0])                {                    case "string":                        {                            str += string.Format(",`{0}`='{1}'", type[1], Value);                        }                        break;                    case "double":                        {                            str += string.Format(",`{0}`='{1:N4}'", type[1], double.Parse(Value));                        }                        break;                    case "decimal":                        {                            str += string.Format(",`{0}`='{1:N2}'", type[1], decimal.Parse(Value));                        }                        break;                    case "int":                        {                            str += string.Format(",`{0}`={1:N}", type[1], int.Parse(Value));                        }                        break;                    default:                        break;                }            }            string sqlstr = "UPDATE `" + dataTable + "`  SET " + str.Substring(1) + " " + condition;            return sqlstr;        }    }}
调用:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            MyMethod data = new MyMethod();            data.SetValue("string,appid", "111111");//类型,建,值            data.SetValue("double,mch_id", 2222.23156);//类型,建,值            data.SetValue("int,time_stamp", 333);//类型,建,值            data.SetValue("double,nonce_str", 444.00);//类型,建,值            data.SetValue("string,product_id", "55555555");//类型,建,值            Console.WriteLine(data.ToSQLStr_Insrt("cashier_goods", ""));            Console.WriteLine(data.ToSQLStr_Update("cashier_goods", "where a=b"));            Console.WriteLine(data.ToSQLStr_Delete("cashier_goods", "where a=b"));            data = new MyMethod();            data.SetValue("appid", null);//类型,建,值            data.SetValue("mch_id", null);//类型,建,值            data.SetValue("time_stamp", null);//类型,建,值            data.SetValue("nonce_str", null);//类型,建,值            data.SetValue("product_id", null);//类型,建,值            Console.WriteLine(data.ToSQLStr_Select("cashier_goods", "where a=b"));            Console.ReadLine();        }    }}


0 0
原创粉丝点击