偶现在刚开始学数据库,目前只会写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()方法吗?
不是只能执行 非查询语句吗?
存储过程的工作原理是啥子嘛?
请高手们指点下,在下先谢谢各位啦!
我知道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()方法吗?
不是只能执行 非查询语句吗?
存储过程的工作原理是啥子嘛?
请高手们指点下,在下先谢谢各位啦!
是不是不用学了啊?
本来就比较晕了,现在更晕了!
myCmd.CommandType = CommandType.StoredProcedure; 指定命令类型为存储过程。。
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
而其与Command mycmd=new Command(..);执行是一样的.
执行存储过程用的就是Command对象的ExecuteNonQuery()方法吗?
还可以用 ExecuteReader();