如何在C#应用程序中调用SQL Server 2005创建的存储过程

时间:2022-08-30 17:56:06
现在正在做一个项目,需要用到存储过程

利用SQL SERVER 2005创建的一个存储过程如下

CREATE PROCEDURE [dbo].[up_day_HourPm10Data]
@ldBeginTime datetime,
@ldEndTime datetime
AS
BEGIN
SELECT ld_recv_date, ld_PM10 from dbo.T_Mid_HourPm10Data where ld_recv_date between @ldBeginTime and @ldEndTime
END

上述存储过程 要表达的意思是:从表 dbo.T_Mid_HourPm10Data 中根据起止时间查询出符合条件的记录(接收时间ld_recv_time,监测值ld_PM10)

在SQL查询分析器中执行该存储过程时:

给输入参数赋初值
@ldBeginTime datetime = '2010-3-31 14:00:00',
@ldEndTime datetime = '2010-3-31 17:00:00'

输出结果为:

ld_recv_date                 ld_PM10

2010-3-31 14:00:00             10
2010-3-31 15:00:00             20
2010-3-31 16:00:00             15
2010-3-31 17:00:00             30

--------------------------------------------------------------

C# WinForm应用程序的窗体上添加两个 datetimepicker 一个listview 一个查询按钮,选择好相应的起止时间后,点击查询按钮即可调用上述存储过程,将查询出来的结果填到listviewer中。。。

由于第一次使用存储过程,不知道如何在C# WinForm应用程序中调用存储过程

恳请大家帮忙,最好能发一个demo源码, 我邮箱 cnyzhy@163.com

谢谢帮忙!

5 个解决方案

#1


基本的c#啊。这种资料多得是。

#2


自己建立一个.cs文件,专门写连接函数,如下:
程序要调用函数user_login,
              WebApplication1.cs.user userlogin = new WebApplication1.cs.user();
            SqlDataReader recu = userlogin.user_login(username.Text.Trim(),     

           WebApplication1.cs.user.Encrypt(pwd.Text.Trim()));
            ///判断用户是否合法
            if (recu.Read())
            {
                UserName = recu["UserName"].ToString();
                User_Priviledge = recu["UserPrivilege"].ToString();
                RealName = recu["RealName"].ToString();
                UserId = recu["ID"].ToString();

            }
            recu.Close();
需要在user.cs中写这个函数:
 public SqlDataReader user_login(string sUserName, string sPassword)
    {
        ///定义类SQLHelper
        SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper();

        ///定义保存从数据库获取的结果的DataReader
        SqlDataReader dr = null;

        ///创建访问数据库的参数
        SqlParameter[] paramList = {
   sqlHelper.CreateInParam("@username",SqlDbType.VarChar,200,sUserName),
   sqlHelper.CreateInParam("@pwd",SqlDbType.VarChar,255,sPassword)
   };

        try
        {
            ///执行存储过程
            sqlHelper.RunProc("user_login", paramList, out dr);
        }
        catch (Exception ex)
        {
            ///抛出执行数据库异常
            SystemError.SystemLog(ex.Message);
            throw new Exception(ex.Message, ex);
        }

        ///返回从数据库获取的结果
        return (dr);
    }
它就是去调用存储过程的:
CREATE PROCEDURE [dbo].[user_login]
@username varchar(200),
@pwd varchar(255)
 AS

select *
from UserInfo
where  UserName=@username and PassWord=@pwd
GO

#3


学习,顶一下

#4


这种是基础啊,你用SQLCommand或adapter就可以了。 

#5


显示-服务器浏览?-链接你的DB,找到具体的proc,设置断点

#1


基本的c#啊。这种资料多得是。

#2


自己建立一个.cs文件,专门写连接函数,如下:
程序要调用函数user_login,
              WebApplication1.cs.user userlogin = new WebApplication1.cs.user();
            SqlDataReader recu = userlogin.user_login(username.Text.Trim(),     

           WebApplication1.cs.user.Encrypt(pwd.Text.Trim()));
            ///判断用户是否合法
            if (recu.Read())
            {
                UserName = recu["UserName"].ToString();
                User_Priviledge = recu["UserPrivilege"].ToString();
                RealName = recu["RealName"].ToString();
                UserId = recu["ID"].ToString();

            }
            recu.Close();
需要在user.cs中写这个函数:
 public SqlDataReader user_login(string sUserName, string sPassword)
    {
        ///定义类SQLHelper
        SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper();

        ///定义保存从数据库获取的结果的DataReader
        SqlDataReader dr = null;

        ///创建访问数据库的参数
        SqlParameter[] paramList = {
   sqlHelper.CreateInParam("@username",SqlDbType.VarChar,200,sUserName),
   sqlHelper.CreateInParam("@pwd",SqlDbType.VarChar,255,sPassword)
   };

        try
        {
            ///执行存储过程
            sqlHelper.RunProc("user_login", paramList, out dr);
        }
        catch (Exception ex)
        {
            ///抛出执行数据库异常
            SystemError.SystemLog(ex.Message);
            throw new Exception(ex.Message, ex);
        }

        ///返回从数据库获取的结果
        return (dr);
    }
它就是去调用存储过程的:
CREATE PROCEDURE [dbo].[user_login]
@username varchar(200),
@pwd varchar(255)
 AS

select *
from UserInfo
where  UserName=@username and PassWord=@pwd
GO

#3


学习,顶一下

#4


这种是基础啊,你用SQLCommand或adapter就可以了。 

#5


显示-服务器浏览?-链接你的DB,找到具体的proc,设置断点