zoukankan      html  css  js  c++  java
  • ado.net中的自动获取存储过程参数

    当数据库中有一个存储过程,而你又不知道参数名,却又要调用其执行的时候,就可以用到这个语法,代码如下:
    SqlConnection con = new SqlConnection(@"server=.\ljzforever;database=test;uid=sa;pwd=ljz");
    SqlCommand cmd = new SqlCommand("getEmp");
    cmd.Connection = con;
    cmd.CommandType = CommandType.StoredProcedure;
    con.Open();
    SqlCommandBuilder.DeriveParameters(cmd);
    cmd.Parameters[1].Value = "1";
    cmd.Parameters[2].Value = "a";
    SqlDataAdapter dap = new SqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    dap.Fill(dt);
    con.Close();
    gvData.DataSource = dt;
    其中表结构为:
    表名:emp
    表字段:id int, name varchar(20)
    getEmp为我的存储过程名
    gvData为一个datagridview
    获取参数的语法只有一句话:SqlCommandBuilder.DeriveParameters(cmd);
    是个静态方法,他要求打开数据库,并将获取的参数填入cmd的数据对象集合中
    注意:
    1.他要求打开数据库
    2.获取参数后,集合的第一个参数的类型为返回值类型
    3.获取参数的顺序为存储过程定义的顺序,所以要小心
    4.如果有出参,记得起码要赋一个dbnull值
  • 相关阅读:
    视频:JDBCRDD源码及自定义JDBCRDD的分区策略
    聊聊spark-submit的几个有用选项
    线性求第k大
    汇编基础 第一章_总线
    长度不超过n的连续最大和___优先队列
    ISAP
    次小生成树
    k短路
    求出欧拉回路,欧拉路径
    拓扑排序bfs_dfs
  • 原文地址:https://www.cnblogs.com/zhuawang/p/2149313.html
Copyright © 2011-2022 走看看