• 存储过程的使用


    下边是C#实现存储过程传递参数的代码

    public DataTable GetCardRecordeByEnglishName(string displayNamey, DateTime startTime, DateTime endTimes)
    {
    string strConn = ConfigurationManager.AppSettings["CardConnection"];

    SqlParameter[] prams = {
    Database.MakeInParam("@f_EnglishName",System.Data.SqlDbType.NVarChar,50,displayNamey),
    Database.MakeInParam("@f_StartTime",System.Data.SqlDbType.DateTime,8,startTime),
    Database.MakeInParam("@f_EndTime",System.Data.SqlDbType.DateTime,8,endTimes)
    };

    return new SqlPlus(strConn).ExecuteDataTable(CommandType.StoredProcedure, "proc_GetCardRecordByTime", prams);
    }

    /// <summary>
    /// 执行SQL命令,返回DataTable
    /// </summary>
    public DataTable ExecuteDataTable(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
    {
    SqlCommand cmd = new SqlCommand();
    DataTable oTab = new DataTable(cmdText);
    using (SqlConnection connection = new SqlConnection(this.SqlConnString))
    {
    PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
    SqlDataAdapter adp = new SqlDataAdapter(cmd);
    adp.Fill(oTab);
    }
    return oTab;
    }

    /// <summary>
    /// 执行SQL命令
    /// </summary>
    private void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
    {

    if (conn.State != ConnectionState.Open)
    conn.Open();

    cmd.Connection = conn;
    cmd.CommandText = cmdText;
    cmd.CommandTimeout = 120;

    if (trans != null)
    cmd.Transaction = trans;

    cmd.CommandType = cmdType;

    if (cmdParms != null)
    {
    foreach (SqlParameter parm in cmdParms)
    cmd.Parameters.Add(parm);
    }
    }

    数据库新建存储过程

    CREATE PROCEDURE [dbo].[Test]

     @dt datetime,

     @allLinename  varchar(10)

     AS

     select  * from allline where  date=@dt and  name=@allLineName

     注:存储过程参数如果不写类型则默认为输入参数,参数是varchar时要标注其长度

    create proc SelectWebSet 
    @c varchar(10) output 
    as 
    exec('select '+@c+' from webset where id=1')
    go 

     更多关于存储过程的请查看下边链接

    http://zhidao.baidu.com/question/55801433

  • 相关阅读:
    sqlzoo练习系列(一)——SELECT 基础
    域名重定向
    自动识别PC端、移动端,并跳转
    Laravel传递多个参数到页面
    Laravel提示The GET method is not supported for this route. Supported methods: POST.错误的解决办法
    Laravel8和之前Laravel版本的区别
    Laravel使用Ajax提交表单报419 unknown status错误的解决方法
    PHP 函数调用之引用地址
    软件开发流程以及开发原则
    php 函数基础
  • 原文地址:https://www.cnblogs.com/GreenGrass/p/2642199.html
Copyright © 2020-2023  润新知