c#-C#程序调用SQL SERVER存储过程的output参数始终为空,求助?

问题描述

C#程序调用SQL SERVER存储过程的output参数始终为空,求助?
C#中的如下两条语句调用存储过程output参数始终为空(dataGridView1能正确调用到想要的select数据,但是存储过程的两个输出参数值不能传递给两个texBox.Text),不知为何?
textBox1.Text = parameters[2].Value.ToString();
textBox2.Text = nowpage + ""/"" + parameters[3].Value.ToString();

存储过程代码:

 USE [tushu]GO/****** Object:  StoredProcedure [dbo].[fenye]    Script Date: 12/05/2015 11:03:20 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER procedure [dbo].[fenye]    @pagenow int    @pagesize int    @countrow int output    @countpage int outputASIF(@pagesize=10)BEGIN     declare @startRow int @endRow int    set @startRow = (@pagenow - 1) * @pagesize +1    set @endRow = @startRow + @pagesize -1    select checkboxidshumingzuozhexueduannianjibeizhu from book    where id between @startRow and @endRow     order by id desc     select @countrow=count(*) from book    SET @countpage=(@countrow/@pagesize)+1END  

C#代码片段:

 private void chaxun_Click(object sender EventArgs e)        {            //查询条件默认            xueduan.SelectedIndex = 0;            nianji.SelectedIndex = 0;            hangshu.SelectedIndex = 0;//每页行数默认10条每页            //tiaopage.Text = """";            //数据统计            //int counthang = 0;            //int countpage = 0;            int nowpage = 1;            int sizepage = 10;            int tiaopage = int.Parse(tiaozhuan.Text.Trim());            string xueDuan = xueduan.Text;            string nianJi = nianji.Text;            string shuMing = shuming.Text.Trim();//自动剔除收尾空格            string condatabase = ConfigurationManager.ConnectionStrings[""mysql""].ConnectionString;            string sql = ""exec fenye @pagenow@pagesizeNULLNULL"";//@countrow@countpage            SqlConnection conn = new SqlConnection(condatabase);            dataGridView1.Rows.Clear();            try            {                SqlCommand cmmd = new SqlCommand(sql conn);//执行SQL查询                // 创建参数                 IDataParameter[] parameters =                 {                    new SqlParameter(""@pagenow"" SqlDbType.Int)                      new SqlParameter(""@pagesize"" SqlDbType.Int)                     new SqlParameter(""@countrow"" SqlDbType.Int)                     new SqlParameter(""@countpage"" SqlDbType.Int)                 };                // 设置参数类型                 parameters[0].Value = nowpage;                parameters[1].Value = sizepage;  // 设置为输出参数                 parameters[2].Direction = ParameterDirection.Output;  //设置为输出参数                parameters[3].Direction = ParameterDirection.Output;                // 添加参数                 cmmd.Parameters.Add(parameters[0]);                cmmd.Parameters.Add(parameters[1]);                cmmd.Parameters.Add(parameters[2]);                cmmd.Parameters.Add(parameters[3]);                conn.Open();                System.Data.DataTable dt = new System.Data.DataTable();                SqlDataAdapter da = new SqlDataAdapter(cmmd);                da.Fill(dt);                for (int i = 0; i < dt.Rows.Count; i++)                {                    this.dataGridView1.Rows.Add(dt.Rows[i][0] dt.Rows[i][1] dt.Rows[i][2] dt.Rows[i][3] dt.Rows[i][4] dt.Rows[i][5] dt.Rows[i][6]);                }                if (dataGridView1.RowCount != 0)                {                    dataGridView1.Rows[0].Cells[0].Selected = false;//设置列表首行默认不选中                }                textBox1.Text = parameters[2].Value.ToString();                textBox2.Text = nowpage + ""/"" + parameters[3].Value.ToString();            }            catch (Exception yichang)            {                MessageBox.Show(yichang.Message);            }            finally            {                conn.Close();//关闭数据库连接             }}

解决方案

http://blog.sina.com.cn/s/blog_97f85b9b01016iyt.html

解决方案二:
C#调用SQL SERVER存储过程
Sql Server 存储过程 output
C#调用SQL Server Reports的方法(存储过程)

时间: 2024-10-30 07:42:54

c#-C#程序调用SQL SERVER存储过程的output参数始终为空,求助?的相关文章

JSP中调用SQL Server存储过程实例讲解

下面介绍一个JSP调用SQL Server存储过程的实例: 创建表: CREATE TABLE [BookUser] (     [UserID] [int] IDENTITY (1, 1) NOT NULL ,     [UserName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,     [Title] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,     [Guid]

sybase跨数据库调用sql server存储过程

问题描述 sybase跨数据库调用sql server存储过程 sql server能调用sybase存储过程,sybase如何调用sql server的存储过程呢? 解决方案 Sql Server数据库的存储过程sql server 数据库存储过程SQL Server 2000数据库存储过程的调用(VB) 解决方案二: http://blog.sina.com.cn/s/blog_b5b346bb0102vbg8.html

Java中调用SQL Server存储过程示例

  最近做了个Java的小项目(第一次写Java的项目哦), 到网上搜索了半天,找到了一个比较好点的调用存储过程的例子,而且网上普遍采用的都是setXXX((int parameterIndex, XXX x)的形式.这种形式感觉不是很直观,下面就发布一个完整的采用setXXX(String parameterName, XXX x)的编写方法.创建数据表,存储过程的代码都完整发布. 创建表: CREATE TABLE [BookUser] (    [UserID] [int] IDENTIT

Java/JSP中调用SQL Server存储过程完整示例

[引自孟子E章的博客]最近做了个Java的小项目(第一次写Java的项目),到网上搜索了半天,找 到了一个比较好点的调用存储过程的例子,而且网上普遍采用的都是setXXX((int parameterIndex, XXX x)的形式.这种形式感觉不是很直观,下面就发布一个完整的采用setXXX(String parameterName, XXX x)的编写方法.创建数据表,存储过程的代码都完整发布. 创建表 CREATE TABLE [BookUser] ( [UserID] [int] IDE

实例讲解JSP调用SQL Server的存储过程

JSP调用SQL Server存储过程的实例: 创建表: CREATE TABLE [BookUser] (     [UserID] [int] IDENTITY (1, 1) NOT NULL ,     [UserName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,     [Title] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,     [Guid] [uniqu

在asp中调用sql server的存储过程

在asp中调用sql server的存储过程可以加快程序运行速度,所以这些天在研究asp中利用sql server的存储过程,现总结如下,其中很多思想也是直接从chinaasp论坛中得出来,希望能给大家一些帮助.1.调用存储过程的一般方法先假设在sql server中有一存储过程dt_users:CREATE PROCEDURE [dbo].[dt_users] ASselect * from usersreturnGO第一种方法是不利用command对象,直接用recordset对象set r

VB/ASP 调用 SQL Server 的存储过程

server|存储过程 昨天有位久未谋面的老同学,突然问起如何在VB中调用SQL的存储过程.当时因为手上没有资料,机器上也没装SQL,随即发了早年写的一段ASP代码,也不知道行不行.抱着负责任的态度,刚好又有点空闲,便做了个测试:(说来惭愧,N久没用VB了,居然不知道怎么加入ADODB类型库了,就填加了一个ADODC控件,汗颜~```) Private Sub ExampleButton_Click()Dim sqlConn As New ADODB.ConnectionDim sqlCmd A

ASP调用SQL SERVER存储程序_存储过程

ASP调用SQL SERVER存储程序  出处   http://www.bmj2000.com/vb/techniccolumn/subDetail.asp?MainId=2&BoardId=asp&ItemId=%CA%FD%BE%DD%BF%E2%B2%D9%D7%F7&RecId=2216  调用数据库存储过程 <%     Set Dataconn = Server.CreateObject("ADODB.Connection")      '建

Sql Server 存储过程调用存储过程接收输出参数返回值

创建存储过程: ALTER PROCEDURE [dbo].[GetCustomers] (@rowcount INT OUTPUT) AS SELECT [CustomerID] ,[CompanyName] ,[ContactName] ,[ContactTitle] ,[Address] ,[City] ,[Region] ,[PostalCode] ,[Country] ,[Phone] ,[Fax] FROM [Northwind].[dbo].[Customers] SET @row