SELECT INTO和INSERT INTO SELECT的区别

 

数据库中的数据复制备份

SELECT INTO:

形式:

  1. SELECT value1,value2,value3 INTO Table_2 FROM Table_1

Table_2表存在,报错:数据库中已存在名为 'Table_2' 的对象。

Table_2表不存在,自动创建表Table_2,成功导入数据

INSERT INTO SELECT:

形式:

  1. INSERT INTO Table_2 (v1,v2,v3) SELECT v4,v5,v6 FROM Table_1

Table_2表不存在,报错:对象名 'Table_2' 无效。

Table_2表存在:成功导入数据

类似aaa?a=1&b=2&c=3&d=4,如何将问号以后的数据变为键值对

 
  1. string result = "aaa?a=1&b=2&c=3&d=4";
  2. string[] array = result.Split('?');
  3. //string a = System.Web.HttpUtility.ParseQueryString(array[1]).Get("a");
  4. System.Collections.Specialized.NameValueCollection abcd = System.Web.HttpUtility.ParseQueryString(array[1]);
  5. string a = abcd.Get("a");
  6. string b = abcd.Get("b");
  7. string c = abcd.Get("c");
  8. string d = abcd.Get("d");

ParseQueryString的内部实现(字符串截取):

  1. int num = (s != null) ? s.Length : 0;
  2. System.Collections.Specialized.NameValueCollection a = new System.Collections.Specialized.NameValueCollection();
  3. for (int i = 0; i < num; i++)
  4. {
  5. int startIndex = i;
  6. int num4 = -1;
  7. while (i < num)
  8. {
  9. char ch = s[i];
  10. if (ch == '=')
  11. {
  12. if (num4 < 0)
  13. {
  14. num4 = i;
  15. }
  16. }
  17. else if (ch == '&')
  18. {
  19. break;
  20. }
  21. i++;
  22. }
  23. string str = null;
  24. string str2 = null;
  25. if (num4 >= 0)
  26. {
  27. str = s.Substring(startIndex, num4 - startIndex);
  28. str2 = s.Substring(num4 + 1, (i - num4) - 1);
  29. }
  30. else
  31. {
  32. str2 = s.Substring(startIndex, i - startIndex);
  33. }
  34. a.Add(str, str2);
  35. if ((i == (num - 1)) && (s[i] == '&'))
  36. {
  37. a.Add(null, string.Empty);
  38. }
  39. }

点击链接学习:膜拜高手

 

C# 获取一定区间的随即数 0、1两个值除随机数以外的取值方法(0、1两个值被取值的概率相等)

 

获取随机数

举例:0-9

  1. Random random = new Random();
  2. int j = random.Next(0, 9);

0、1两个值被取值的概率相等

  1. int a = Math.Abs(Guid.NewGuid().GetHashCode()) % 2;
  2. if (a == 0)
  3. {}
  4. else if(a==1)
  5. {}
  1. /// <summary>
  2. /// 获取等概率的小于最大数的非负随机数
  3. /// </summary>
  4. /// <param name="n">最大数</param>
  5. /// <returns></returns>
  6. public static int Estimate(int n)
  7. {
  8. return Math.Abs(Guid.NewGuid().GetHashCode()) % n;
  9. }
 

C# MD5 加密,解密

 

//生成cs文件

public class MD5Help
{
  ///MD5加密 
  public static string MD5Encrypt(string pToEncrypt, string sKey)
  {
  DESCryptoServiceProvider des = new DESCryptoServiceProvider();
  byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
  des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
  des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
  MemoryStream ms = new MemoryStream();
  CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
  cs.Write(inputByteArray, 0, inputByteArray.Length);
  cs.FlushFinalBlock();
  StringBuilder ret = new StringBuilder();
  foreach (byte b in ms.ToArray())  
  {
  ret.AppendFormat("{0:X2}", b);
  }
  ret.ToString();
  return ret.ToString();

  }

  ///MD5解密 
  public static string MD5Decrypt(string pToDecrypt, string sKey)
  {
  DESCryptoServiceProvider des = new DESCryptoServiceProvider();

  byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
  for (int x = 0; x < pToDecrypt.Length / 2; x++)
  {
  int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
  inputByteArray[x] = (byte)i;
  }

  des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
  des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
  MemoryStream ms = new MemoryStream();
  CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
  cs.Write(inputByteArray, 0, inputByteArray.Length);
  cs.FlushFinalBlock();

  StringBuilder ret = new StringBuilder();

  return System.Text.Encoding.Default.GetString(ms.ToArray());
  }
}

-------------------------------------------------------------------------------------------------

使用:

string IPassword = MD5Help.MD5Encrypt(password, ConfigurationManager.AppSettings["sKey"].ToString()); //加密
string JPassword = MD5Help.MD5Decrypt(Password, ConfigurationManager.AppSettings["sKey"].ToString()); //解密

webConfig配置:

<!--Md5加密key-->
<add key="sKey" value="JUNDAOXT"/>

C#中DataTable删除多条数据

 

//一般情况下我们会这么删除

DataTable dt = new DataTable();

for (int i = 0; i < dt.Rows.Count; i++)

{

if (99 % i == 0)

{

dt.Rows.RemoveAt(i);

}

}

//但是这么删除会出现意外情况

//当运行dt.Rows.RemoveAt(i)代码后DataTable的index会发生改变

//且他的dt.Rows.Count也会改变

//正确做法一

for (int i = dt.Rows.Count - 1; i >= 0; i--)

{

if (99 % i == 0)

{

dt.Rows.RemoveAt(i);

}

}

//正确做法二

for (int i = 0; i < dt.Rows.Count; i++)

{

if (99 % i == 0)

{

dt.Rows[i].Delete();

}

}

dt.AcceptChanges();//提交

//dt.RejectChanges();//回滚个人笔记

SELECT INTO和INSERT INTO SELECT的区别 类似aaa?a=1&b=2&c=3&d=4,如何将问号以后的数据变为键值对 C# 获取一定区间的随即数 0、1两个值除随机数以外的取值方法(0、1两个值被取值的概率相等) C# MD5 加密,解密 C#中DataTable删除多条数据的更多相关文章

  1. C#中DataTable删除多条数据

    //一般情况下我们会这么删除 DataTable dt = new DataTable(); for (int i = 0; i < dt.Rows.Count; i++) { if (99 % ...

  2. C# 获取一定区间的随即数 0、1两个值除随机数以外的取值方法(0、1两个值被取值的概率相等)

    获取随机数 举例:0-9 Random random = new Random(); int j = random.Next(0, 9); 0.1两个值被取值的概率相等 int a = Math.Ab ...

  3. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)

    https://www.cnblogs.com/mq0036/p/4155136.html 我们经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个tabl ...

  4. sql-实现select取行号、分组后在分组内排序、每个分组中的前n条数据

    表结构设计: 实现select取行号 sql局部变量的2种方式 set @name='cm3333f'; select @id:=1; 区别:set 可以用=号赋值,而select 不行,必须使用:= ...

  5. oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

    我们经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INT ...

  6. SELECT INTO 和 INSERT INTO SELECT

    做数据库开发的过程中难免会遇到有表数据备份的,而SELECT INTO……和INSERT INTO SELECT…… 这两种语句就是用来进行表数据复制,下面简单的介绍下: 1.INSERT INTO ...

  7. 问题:oracle select into;结果:oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

    oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解 (2011-07-08 08:59:47) 转载▼ 标签: it 分类: oracle 我们经常会遇 ...

  8. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

    Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少.但我 ...

  9. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句.txt

    Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少.但我 ...

随机推荐

  1. 【python】函数式编程

    No1: 函数式编程:即函数可以作为参数传递,也可以作为返回值  No2: map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的 ...

  2. [译] Go数据结构-接口

    原文 Go Data Structures: Interfaces 作者 Russ Cox 声明:本文目的仅仅作为个人mark,所以在翻译的过程中参杂了自己的思想甚至改变了部分内容.但由于译者水平有限 ...

  3. Linux 中 Windows 中文乱码

    Linux 下 Windows 源代码中文乱码 由于 windows 和 linux 对文本的编码方式不同,所以经常会有 windows 中生成的文本在 linux 中打开乱码的情况. 比如: 我面临 ...

  4. android 职业 转行

    不知道多少人和我一样.学安卓安卓工作.成了一件很烦躁的事情.甚至迷茫.    起初学安卓,是因为安卓流行,所以有兴趣,想要学.那个时候想做一个应用,想对安卓手机有个了解,比如获取手机短信.没有太在意工 ...

  5. 2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周

    2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周 博客要求 组内同学需各自发表博客 博客中需包含以下内容: 相关过程截图 关键代码解释 遇到的困难及解决 ...

  6. C++程序设计方法2:函数运算符重载

    函数运算符()重载 函数运算符()也能重载,它使得对象看上去像是一个函数名 ReturnType operator() (Parameters) { ...... } ClassName Obj; O ...

  7. ZKW线段树入门

    Part 1 来说说它的构造 线段树的堆式储存 我们来转成二进制看看 小学生问题:找规律 规律是很显然的 一个节点的父节点是这个数左移1,这个位运算就是低位舍弃,所有数字左移一位 一个节点的子节点是这 ...

  8. C#扩展方法实现

    C#提供了一种机制,可以扩展系统或者第三方类库中的方法.比如说想在string类型的对象里面多一个ToInt32(),来方便的将字符转换成整形.在实现的过程中的关键字为static和this即可.   ...

  9. Centos 6 安装 Mysql 5.6

    参考:http://www.runoob.com/mysql/mysql-database-import.html 数据库 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库, 每个 ...

  10. vue中引用vux

    官网看不懂,网上搜了下,以备不时之需 这是官网说明文档,看不懂的啊. Vux使用教程: 1,在项目里安装vux cnpm install vux --save 2,在项目里安装vux-loader(这 ...