字符串截取:SUBSTRING(‘123456’, 1, 4)
转换日期格式:CONVERT(varchar(100), getdate(), 23) “2012-01-01”
转换格式:cast('2012-01-01' as datetime)//时间格式
Datetime增加:dateadd(yy,1, getdate())
寻坏遍历:
while 1< 2
begin
end
Sql 语句大全(收集)http://www.cnblogs.com/yubinfeng/archive/2010/11/02/1867386.html
命名控件和类名必须和自动生成的类的一致,partial代表此类是一个成员类,类似于对另外一个类的扩展。
创建一个临时表
--第一步创建临时表 CREATE TABLE #TMP_FLOW_LEAVE_OVERTIME ( FLOW_YEAR nvarchar(10) NOT NULL,--年份 Vacation decimal(16, 2) default 0,--年假 ) select * from #TMP_FLOW_LEAVE_OVERTIME;--查询临时表 DROP TABLE #TMP_FLOW_LEAVE_OVERTIME;--删除临时表
using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); SqlCommand cmd; conn = new SqlConnection(connection); DataSet myds = new DataSet(); cmd = new SqlCommand("存储过程名", conn); cmd.CommandType = CommandType.StoredProcedure; SqlDataAdapter sdp = new SqlDataAdapter(); sdp.SelectCommand = cmd; sdp.Fill(myds); conn.Close(); }
using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); SqlTransaction myTrans = conn.BeginTransaction(); SqlCommand com = new SqlCommand(); com.Connection = sqlConnection; com.Transaction = myTrans; com.CommandText = "SQL语句"; com.ExecuteNonQuery(); myTrans.Commit();//提交事务 myTrans.Rollback();//事务回滚 conn.Close(); conn.Dispose();//释放资源 }
一个简单的执行存储过程(input、output、returnvalue等参数)Dataset代码:
using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); SqlCommand cmd; conn = new SqlConnection(connection); DataSet myds = new DataSet(); cmd = new SqlCommand("存储过程名", conn); SqlParameter paraInput = new SqlParameter("@paraInput", SqlDbType.NVarChar, 15); paraInput.Value = strParaInput;//默认是input cmd.Parameters.Add(paraInput); SqlParameter paraOutput = new SqlParameter("@paraOutput", SqlDbType.Bit); paraOutput.Direction = ParameterDirection.Output;//输出类型 cmd.Parameters.Add(paraOutput); SqlParameter paraReturn = new SqlParameter("@paraReturn", SqlDbType.NVarChar, 400); paraReturn.Direction = ParameterDirection.ReturnValue;//返回类型 querycmd.Parameters.Add(paraReturn); cmd.CommandType = CommandType.StoredProcedure; //第一种直接执行 Cmd.ExecuteNonQuery(); //第二种用SqlDataAdapter执行 SqlDataAdapter sdp = new SqlDataAdapter(); sdp.SelectCommand = cmd; sdp.Fill(myds); conn.Close(); bool OutputValue=paraOutput.Value;//获取输出值 string ReturnValue = paraReturn.Value;//获取返回值 }
一个存储过程的参考
/******************************************************************** 功能描述:验证申请单的有效性,并获取申请单的状态 创建人: 创建时间: 修改人: 修改时间: 修改事项: *********************************************************************/ CREATE PROCEDURE 存储过程名 @c_FLOW_TYPE nvarchar(15), --流程类型 @b_SUCCESS bit OUTPUT,--执行结果,1-成功,0-失败。SP统一 @c_MSG nvarchar(400) OUTPUT --执行结果信息。SP统一 AS BEGIN TRY--捕获异常的try catch语句块 --1. 初始化输出参数 SELECT @b_IS_VALID = 0,@c_MSG = '',@b_SUCCESS = 1,@c_FLOW_STATE = ''; --2. 检查参数@c_FLOW_TYPE和@c_PROCESSOR合法性(参考codelist中FLOW_TYPE的内容) IF NOT EXISTS(
SELECT 1 FROM SYS_CODELIST A,SYS_CODELIST_LINE B WHERE A.CODELIST_ID = B.CODELIST_ID AND A.CODELIST_NAME = 'FLOW_TYPE' AND B.CODE_VALUE = @c_FLOW_TYPE ) BEGIN SET @c_MSG = N'不是有效的申请单类型!'; RETURN; END
--3. if else语句块 IF @n_FLOW_ID <= 0 BEGIN SET @c_MSG = N'申请单序号无效';--N'string' 表示string是个Unicode字符串 END ELSE BEGIN SET @c_MSG =N'申请单序号有效'; END END TRY BEGIN CATCH --设置返回信息 SET @b_SUCCESS = 0; SET @c_MSG = ERROR_MESSAGE() + N' ([dbo].[NSP_FLOW_APPLICATION_VERIFY])'; RAISERROR(@c_MSG,16,1)--RAISERROR是用于抛出一个错误. --参考:(http://www.cnblogs.com/xugang/archive/2011/04/09/2010216.html) END CATCH