c# 用存储过程

转载 2012年03月30日 10:49:38

⑤写个带参数的C#存储过程吧,上面这个简单得有点惨不忍睹,不过还是蛮实用的.

  1. CREATE PROCEDURE dbo.AXzhz
  2. /*
  3. 这里写注释
  4. */
  5. @startDate varchar(16),
  6. @endDate varchar(16)
  7. AS
  8. select id from table_AX where commentDateTime>@startDate and commentDateTime< @endDate order by contentownerid DESC

注:@startDate varchar(16)是声明@startDate 这个变量,多个变量名间用【,】隔开.后面的SQL就可以使用这个变量了.

⑥我怎么在ASP.Net中调用这个带参数的存储过程?

  1. public static string GetCustomerCNameCount(string startDate,string endDate,ref DataSet ds)
  2. {
  3. SqlConnection con=ADConnection.createConnection();
  4. //-----------------------注意这一段--------------------------------------------------------------------------------------------------------
  5. SqlDataAdapter da=new SqlDataAdapter("AXzhz",con);
  6. para0=new SqlParameter("@startDate",startDate);
  7. para1=new SqlParameter("@endDate",endDate);
  8. da.SelectCommand.Parameters.Add(para0);
  9. da.SelectCommand.Parameters.Add(para1);
  10. da.SelectCommand.CommandType=CommandType.StoredProcedure;
  11. //-------------------------------------------------------------------------------------------------------------------------------
  12. try
  13. {
  14. con.Open();
  15. da.Fill(ds);
  16. con.Close();
  17. return "OK";
  18. }
  19. catch(Exception ex)
  20. {
  21. return ex.ToString();
  22. }
  23. }

注:把命令的参数添加进去,就OK了

⑦我还想看看SQL命令执行成功了没有.

  1. CREATE PROCEDURE dbo.AXzhz
  2. /*
  3. @parameter1 用户名
  4. @parameter2 新密码
  5. */
  6. @password nvarchar(20),
  7. @userName nvarchar(20)
  8. AS
  9. declare @err0 int
  10. update WL_user set password=@password where UserName=@userName
  11. set @err0=@@error
  12. select @err0 as err0

注:先声明一个整型变量@err0,再给其赋值为@@error(这个是系统自动给出的语句是否执行成功,0为成功,其它为失败),最后通过select把它选择出来,某位高人说可以通过Return返回,超出本人的认知范围,俺暂时不会,以后再补充吧

⑧那怎么从后台获得这个执行成功与否的值呢?

下面这段代码可以告诉你答案:

  1. public static string GetCustomerCName()
  2. {
  3. SqlConnection con=ADConnection.createConnection();
  4. SqlCommand cmd=new SqlCommand("AXzhz",con);
  5. cmd.CommandType=CommandType.StoredProcedure;
  6. para0=new SqlParameter("@startDate","2006-9-10");
  7. para1=new SqlParameter("@endDate","2006-9-20");
  8. da.SelectCommand.Parameters.Add(para0);
  9. da.SelectCommand.Parameters.Add(para1);
  10. con.Open();
  11. try
  12. {
  13. Int32 re=(int32)cmd.ExecuteScalar();
  14. con.Close();
  15. if (re==0)
  16. return "OK!";
  17. else
  18. return "false";
  19. }
  20. catch(Exception ex)
  21. {
  22. con.Close();
  23. return ex.ToString();
  24. }
  25. }

注:就是通过SqlCommand的ExecuteScalar()方法取回这个值,这句话是从MSDN上找的,俺认为改成:

int re=(int)cmd.ExecuteScalar();   99%正确,现在没时间验证,期待您的测试!!!

⑨我要根据传入的参数判断执行哪条SQL语句!!~

下面这个存储过程可以满足我们的要求,竟然是Pascal/VB的写法,Begin----End ,不是{},,,对使用C#的我来说,这个语法有点恶心.........

  1. ALTER PROCEDURE dbo.selectCustomerCNameCount
  2. @customerID int
  3. AS
  4. if @customerID=-1
  5. begin
  6. select contentownerid ,userCName,count(*) as countAll from view_usercomment group by contentownerid,userCName order by contentownerid DESC
  7. end
  8. else
  9. begin
  10. select contentownerid ,userCName,count(*) as countAll from view_usercomment where contentownerid=@customerID group by contentownerid,userCName order by contentownerid DESC
  11. end

相关文章推荐

C#语句的存储过程

【转】ASP中采用 C# 调用各类型的存储过程的总结

本文的数据库用的是sql server自带数据Northwind 连接字符串: string conn = ConfigurationManager.ConnectionStrings["Nort...
  • sl159
  • sl159
  • 2012-08-02 09:01
  • 596

C#存储过程

  • 2013-08-06 15:54
  • 454KB
  • 下载

C#对Oracle存储过程的调用

C#对Oracle存储过程的调用 --创建表 declare num number;  begin  select count(1) into num from user_tabl...

关于c#存储过程的使用

  • 2011-03-18 14:49
  • 226KB
  • 下载

C#创建存储过程代码.doc

  • 2010-05-12 11:02
  • 42KB
  • 下载

SQL那些事儿(十四)--C#调用oracle存储过程(查询非查询and有参无参)深度好文

最近老总让使用存储过程,说这个比较好用,抓起本oracle书看了看,写存储过程不是很难,但是写了存储过程调用的时候遇到许多问题,经过一天时间,把各种能遇到i的问题基本总结了下,跟大家分享。 照例画了张...

C#执行SQL的存储过程

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)