偶现在刚开始学数据库,目前只会写DataReader,DataAdapter,DataSet和Command对象..
我知道SqlCommand对象可以执行非查询语句--ExecuteNonQuery();
查询语句可以用DataSet,DataReader等将结果存入.
======================================以上的不对的地方请指点哈哈现在我看书上有什么"存储过程",仔细看了看很难,一堆参数,在C#的类里实现那么复杂..
这是书上的代码---最简单的那段了几乎!
/// <summary>
    /// 获取所有管理员信息
    /// </summary>
    /// <param name="P_Str_srcTable">管理员信息表名</param>
    /// <returns>返回所有管理员信息的数据集</returns>
    public DataSet ReturnAdminIDs(string P_Str_srcTable)
    {
        SqlConnection myConn = dbObj.GetConnection();
        SqlCommand myCmd = new SqlCommand("Proc_GetAdminInfo", myConn);
        myCmd.CommandType = CommandType.StoredProcedure;
        //执行过程
        myConn.Open();
        try
        {
            myCmd.ExecuteNonQuery();        }
        catch (Exception ex)
        {
            throw (ex);
        }
        finally
        {
            myCmd.Dispose();
            myConn.Close();        }
        SqlDataAdapter da = new SqlDataAdapter(myCmd);
        DataSet ds = new DataSet();
        da.Fill(ds, P_Str_srcTable);
        return ds;    }现在我想问的是(不好意思,罗嗦这半天)执行存储过程用的就是Command对象的ExecuteNonQuery()方法吗?
不是只能执行 非查询语句吗?
存储过程的工作原理是啥子嘛?
请高手们指点下,在下先谢谢各位啦!

解决方案 »

  1.   

    还有,我发现程序用的几乎全是存储过程,我刚学的那些Adapter,DataReader等等怎么好象都没有用啊?
    是不是不用学了啊?
    本来就比较晕了,现在更晕了!
      

  2.   

    晕。这些对象(dataset,datareader...)调用存储过程和SQL语句是一样的噢。只不过调用存储过程的时候要加上这句:
    myCmd.CommandType = CommandType.StoredProcedure; 指定命令类型为存储过程。。
      

  3.   

    1.首先你要看看你的存储过程里面的业务逻辑是做什么,如果是insert 数据,update数据,还是包含一个结果集
    2.存储过程是什么:用简单的控制流形成的和T-SQL语句形成的语句,就想c#一个方法一样,只不过更简单,容易写
    3.比如if ,if else ,while,cursor,try ...catch(sql server2005),等等
    例如:我们写一个解析xml文件的存储过程(在sql server2005运行)
    USE tempdb
    GO--创建一个解析xml的存储过程,可以传递一个xml类型的参数
    CREATE PROCEDURE dbo.ParseXml
    @xml xml  --xml类型的参数
    AS SET NOCOUNT OFFIF @xml IS NULL
    RAISERROR('There is not xml instance.',16,1)SELECT T.c.value('.','varchar(30)') AS Information
    FROM @xml.nodes('/Root/andy') T(c)GO--执行这个存储过程DECLARE @xml xml
    SET @xml = N'<Root>
    <andy>newegg</andy>
    <andy>chengdu</andy>
    </Root>'
    EXEC dbo.ParseXml @xml
      

  4.   

    使用myCmd.CommandType = CommandType.StoredProcedure; 指定程序调用数据库存储过程执行,
    而其与Command mycmd=new Command(..);执行是一样的.
      

  5.   

    存储过程就是在服务器端执行一定的SQL语句来返回结果,
    执行存储过程用的就是Command对象的ExecuteNonQuery()方法吗? 
    还可以用 ExecuteReader();