create proc insertLog
@Title nvarchar(50),
@Contents nvarchar(max),
@UserId int,
@CreateTime datetime
as
insert into Logs values(@Title,@Contents,@UserId,@CreateTime)
go
exec insertLog 'admin','admin',1,'2018-11-19'

看一下存储过程的定义:

存储过程就是一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。”

你贴出来的代码段就是实现了一个插入日志的存储过程,带@开头的表示的是参数,参数为Title标题,Contents内容,UserID用户ID,CreateTime创建时间。as与go之间的内容就类似与函数体,也就是执行的操作。exec代表执行这个存储过程,后面的四个引号中的内容是传递给存储过程的参数。

C#调用Windows CMD命令并返回输出结果

 
private static string InvokeExcute(string Command)
{
    Command = Command.Trim().TrimEnd('&') + "&exit";
    using (Process p = new Process())
    {
        p.StartInfo.FileName = "cmd.exe";
        p.StartInfo.UseShellExecute = false;        //是否使用操作系统shell启动
        p.StartInfo.RedirectStandardInput = true;   //接受来自调用程序的输入信息
        p.StartInfo.RedirectStandardOutput = true;  //由调用程序获取输出信息
        p.StartInfo.RedirectStandardError = true;   //重定向标准错误输出
        p.StartInfo.CreateNoWindow = true;          //不显示程序窗口
        p.Start();//启动程序
        //向cmd窗口写入命令
        p.StandardInput.WriteLine(Command);
        p.StandardInput.AutoFlush = true;
        //获取cmd窗口的输出信息
        StreamReader reader = p.StandardOutput;//截取输出流
        string str = reader.ReadToEnd();
        p.WaitForExit();//等待程序执行完退出进程
        p.Close();
        return str;
    }
}

例子:

string str = InvokeExcute("ipconfig");
Console.WriteLine(str);
 
 
 

Mysql删除重复数据保留最小的id

 

在网上查找删除重复数据保留id最小的数据,方法如下:

 1 DELETE
 2 FROM
 3     people
 4 WHERE
 5     peopleName IN (
 6         SELECT
 7             peopleName
 8         FROM
 9             people
10         GROUP BY
11             peopleName
12         HAVING
13             count(peopleName) > 1
14     )
15 AND peopleId NOT IN (
16     SELECT
17         min(peopleId)
18     FROM
19         people
20     GROUP BY
21         peopleName
22     HAVING
23         count(peopleName) > 1
24 )

自己使用的时候显示报错:

1 delete from tb where id in (SELECT max(id) from tb GROUP BY user HAVING count(user)>1)

[Err] 1093 - You can't specify target table ‘XXX’ for update in FROM clause

暂时不知道是什么原因导致的。

然后想办法分布操作,首先筛选出有重复user的数据,然后用max()选出其中较大的那一行:

SELECT max(id) from tb GROUP BY user HAVING count(user)>1

然后再根据得到的max(id)逐条删除多余的数据

1 delete from tb where id=xx

是个笨方法,暂时先解决问题吧。

C# 取字符串中间文本 取字符串左边 取字符串右边

 
 1 public static string Between(string str, string leftstr, string rightstr) //取文本中间
 2         {
 3             if (str != null && str.Length == 0) return "";
 4             if (leftstr != "")
 5             {
 6                 int i = str.IndexOf(leftstr);//去除左边字符串之后第一个字符的位置
 7                 i = i + leftstr.Length;//左边字符串长度
 8                 if (rightstr != "")
 9                 {
10                     int ResultLength = str.IndexOf(rightstr, i) - i;//取中间字符串长度
11                     return str.Substring(i, ResultLength);
12                 }
13                 else return str.Substring(i, str.Length - i);//取字符串右边
14             }
15             else//取字符串左边
16             {
17                 int i = str.IndexOf(rightstr);
18                 if (i == 0) return "";
19                 else return str.Substring(0, i);
20             }
21         }

C# JSON格式数据高级用法

 JSON简介

JSON(全称为JavaScript ObjectNotation) 是一种轻量级的数据交换格式。它是基于JavaScript语法标准的一个子集。JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成。

JSON与XML的比较

◆可读性

JSON和XML的可读性相比较而言,由于XML提供辅助的标签,更加适合人阅读和理解。

◆文件大小与传输

XML允许使用方便的标签,所以文件尺寸是要比JSON大的。而且JSON源于Javascript,所以天生的主战场是Javascript与网络,在这里,JSON有着XML无法赶超的优势。

JSON语法

1. JSON 语法是 JavaScript 对象表示法语法的子集。

数据在名称/值对中:名称是字符串,使用双引号表示。值可以是:数字(整数或浮点数),字符串(在双引号中),数组(在方括号中),对象(在花括号中),true/false/null。

数据由逗号分隔:

花括号保存对象:对象可以包含各种数据,包括数组。

方括号保存数组:数字可以包含对象。

在做开发的时候,很多数据都是以Json格式传输的,而使用Json的时候,我们通常会涉及到几个序列化对象的使用:

System.Runtime.Serialization.Json.DataContractJsonSerializer
System.Web.Script.Serialization.JavaScriptSerializer
Json.NET即Newtonsoft.Json 
由于Json.NET的性能及通用性较好,因此它的使用范围越来越广,借助前人的经验今天我也总结使用一下。 
官网API:http://www.newtonsoft.com/json/help/html/N_Newtonsoft_Json.htm

开源的类库Newtonsoft.Json(下载地址https://www.newtonsoft.com/json)

基本用法

Json.Net是支持序列化和反序列化DataTable、DataSet、Entity Framework和Entity的

private void Newtonsoft()
{
    DataTable dt = new DataTable();
    dt.Columns.Add("Name", Type.GetType("System.String"));
    dt.Columns.Add("Sex", Type.GetType("System.String"));
    dt.Columns.Add("Age", Type.GetType("System.Int32"));
    dt.Columns.Add("PhoneNumber", Type.GetType("System.String"));
    for (int i = 0; i < 3; i++)
    {
        DataRow dr = dt.NewRow();
        dr["Name"] = "Name" + i;
        dr["Sex"] = i % 2 == 0 ? "女" : "男";
        dr["Age"] = 18 + i;
        dr["PhoneNumber"] = "18233388888";
        dt.Rows.Add(dr);
    }
    /*序列化DataTable*/
    string json = JsonConvert.SerializeObject(dt);
    /*反序列化DataTable*/
    DataTable dtSource = JsonConvert.DeserializeObject<DataTable>(json);
    foreach (DataRow item in dtSource.Rows)
    {
        string name = item["Name"].ToString();
        string sex = item["Sex"].ToString();
        int age = int.Parse(item["Age"].ToString());
        string phoneNumber = item["PhoneNumber"].ToString();
    }
}

Serialize JSON 格式转换

Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Sizes = new string[] { "Small" };

string json = JsonConvert.SerializeObject(product);
// {
//   "Name": "Apple",
//   "Expiry": "2008-12-28T00:00:00",
//   "Sizes": [
//     "Small"
//   ]
// }

Deserialize JSON 格式转换

string json = @"{
  'Name': 'Bad Boys',
  'ReleaseDate': '1995-4-7T00:00:00',
  'Genres': [
    'Action',
    'Comedy'
  ]
}";

Movie m = JsonConvert.DeserializeObject<Movie>(json);

string name = m.Name;
// Bad Boys

LINQ to JSON 格式转换

JArray array = new JArray();
array.Add("Manual text");
array.Add(new DateTime(2000, 5, 23));

JObject o = new JObject();
o["MyArray"] = array;

string json = o.ToString();
// {
//   "MyArray": [
//     "Manual text",
//     "2000-05-23T00:00:00"
//   ]
// }

SQL server 存储过程 C#调用Windows CMD命令并返回输出结果 Mysql删除重复数据保留最小的id C# 取字符串中间文本 取字符串左边 取字符串右边 C# JSON格式数据高级用法的更多相关文章

  1. Python实现Windows CMD命令行彩色输出

    #! /usr/bin/env python #coding=utf-8   import ctypes,sys   STD_INPUT_HANDLE = -10 STD_OUTPUT_HANDLE ...

  2. sql server 存储过程中,调用事务 tran

      Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务. begin tran表示开始事务, commit tran表示 ...

  3. Mysql删除重复数据保留最小的id

    在网上查找删除重复数据保留id最小的数据,方法如下: DELETE FROM people WHERE peopleName IN ( SELECT peopleName FROM people GR ...

  4. C#调用Windows CMD命令并,返回输出结果或错误信息

    public static string InvokeExcute(string Command) { Command = Command.Trim().TrimEnd('&') + &quo ...

  5. 解析json格式数据

    实现目标 读取文件中的json格式数据,一行为一条json格式数据.进行解析封装成实体类. 通过google的Gson对象解析json格式数据 我现在解析的json格式数据为: {",&qu ...

  6. JSON(三)——java中对于JSON格式数据的解析之json-lib与jackson

    java中对于JSON格式数据的操作,主要是json格式字符串与JavaBean之间的相互转换.java中能够解析JSON格式数据的框架有很多,比如json-lib,jackson,阿里巴巴的fast ...

  7. Android创建JSON格式数据

    Android创建JSON格式数据 作为上一篇博客的补充,简单那解说了一下Android创建JSON格式数据的小Demo. 1. 创建JSON格式数据 对于Android创建JSON格式数据.因为An ...

  8. C# 调用存储过程 Sql Server存储过程 存储过程报错,程序中的try

    C#程序调用Sql Server存储过程,存储过程中报错情况,返回值... 0.SQL存储过程 USE [Opos] GO /****** Object: StoredProcedure [dbo]. ...

  9. Yii2.0调用sql server存储过程并获取返回值

    1.首先展示创建sql server存储过程的语句,创建一个简单的存储过程,测试用. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE P ...

随机推荐

  1. HDU 4493 Tutor (水题)

    Tutor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submi ...

  2. hdu 1532 Drainage Ditches (最大流)

    最大流的第一道题,刚开始学这玩意儿,感觉好难啊!哎····· 希望慢慢地能够理解一点吧! #include<stdio.h> #include<string.h> #inclu ...

  3. Maven之——仓库(下)

    Maven之--仓库(下) 1.    快照版本号 Maven世界中不论什么项目或者构件都有自己的版本号. Maven在构建时检測到构件是快照版本号.而且当前构件不是最新版本号的时候.就会自己主动更新 ...

  4. Tomcat:基础安装和使用教程

    背景 此文记录了 Tomcat 的基本使用方法,主要为了强化记忆. 安装步骤 第一步:下载和安装 Java 下载地址:http://www.oracle.com/technetwork/java/ja ...

  5. nolock的使用

    在SQL Server 2005数据库查询时,为了提高查询的性能,我们往往会在表后面加一个nolock,或者是with(nolock),让数据库在查询时不锁定表,从而提高查询的速度.本文我们就介绍SQ ...

  6. MySQL 中文乱码解决

    測试环境:服务端和client均为win7,MySql数据库.表字符集为utf-8,字段字符集与表一致. 1.使用mysql命令进行操作时的乱码问题解决. (1)设置当前字符集 set names g ...

  7. windows安装Jupyter Notebook

    这是我自定义的Python 的安装目录 (D:\SoftWare\Python\Python36\Scripts) 1.Jupyter Notebook 和 pip 为了更加方便地写 Python 代 ...

  8. 项目笔记:list页面展示与交互设计

    1.前台页面: 因为要展示正版和非正版,所以传个Type值过去: //正版序列号库列表 var type = $("input[name='serialNumber']:checked&qu ...

  9. vb.net中将DataGridView与数据源绑定

    在< .net中将DataGridView内的数据导出为Excel表格>中说了如何导出数据到Excel,今天这篇文章将讲述如何绑定数据源,在控件中显示我们需要的信息. 在敲机房收费系统的时 ...

  10. RS报表从按月图表追溯到按日报表

    相信很多COGNOS开发人员看到这个标题就会感觉很轻松,追溯无非是COGNOS自带的一个下钻的功能,但是这里却是固定的条件: 要求1:A报表显示按月的图表B报表显示按日的明细 2:追溯到B的时候B的开 ...