利用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
- 利用KeyValuePair生成sql键值对csharpVS2015
- 利用KeyValuePair遍历Dictionary
- 利用map对键值的默认排序
- KeyValuePair
- 键值对
- 利用键值对统计单词出现的次数
- 怎么利用HttpURLConnection向服务器发送键值对
- 快速排序非递归版(利用键值对)
- 利用Map集合中的键值对可以查询完…
- 代码生成: 利用SQL生成SQL代码
- sql语句出现键值对冲突的解决
- 利用文件存放键值对,并保证每个键值对都是唯一的,可以更新可单独取
- 利用SQL生成xml示例
- 利用SQL生成xml示例
- 利用注解动态生成sql
- 用SQL生成对战表
- ftok键值生成函数
- 关于键值对
- GPU(CUDA)学习日记(十四)------CUDA软件更新信息 Parallel Nsight 3.0新特性以及NVAPI介绍
- Java程序员应该掌握
- 爬虫小程序(实习僧网抓取数据)
- ios之地理编码常用知识整理
- Basic Calculator
- 利用KeyValuePair生成sql键值对csharpVS2015
- [API]使用Blueprint来高雅的编写接口文档
- 告别手写 API文档生成工具推荐
- 使用文档功能撰写API接口
- GPU(CUDA)学习日记(十五) ------ CUDA 5 的一些介绍与下载
- CUDA从入门到精通(零):写在前面
- Android事件分发机制
- Android Gradle Plugin指南(二)——基本项目
- CUDA从入门到精通(一):环境搭建