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值
  • 相关阅读:
    文件下载断点续传插件webupload插件
    cocos2dx 2.x 粒子渲染时有黑色粒BUG
    VOIP NAT穿越之SIP信令穿越
    hdu 5086 Revenge of Segment Tree(BestCoder Round #16)
    [并发]线程池技术小白
    调用 COM 对象
    switch-case 执行顺序
    HDELETE
    python and java
    部分查询练习题及答案
  • 原文地址:https://www.cnblogs.com/zhuawang/p/2149313.html
Copyright © 2011-2022 走看看