c# 存储过程调用错误 sqlserver

存储过程。CREATEproczhangtianxing@zhangtianxing1intoutputasselect@zhangtianxing1=i_idfromt... 存储过程。

CREATE proc zhangtianxing
@zhangtianxing1 int output

as
select @zhangtianxing1=i_id from test
GO

.cs文件

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class Web_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string strconnection = "Server=127.0.0.1;uid=sa;password=wxj;database=ztx;";

SqlConnection sqlconnection2 = new SqlConnection(strconnection);
sqlconnection2.Open();
SqlCommand sqlcommand2 = new SqlCommand();
sqlcommand2.Connection = sqlconnection2;
sqlcommand2.CommandText="zhangtianxing";
sqlcommand2.Parameters["zhangtianxing1"].ToString(); ;

abc.DataSource = sqlcommand2.ExecuteReader();
abc.DataBind();
sqlconnection2.Close();
}
}

错误提示:
Exception Details: System.IndexOutOfRangeException: An SqlParameter with ParameterName 'zhangtianxing1' is not contained by this SqlParameterCollection.
展开
 我来答
三根鞋带
2007-09-18 · TA获得超过2260个赞
知道大有可为答主
回答量:1156
采纳率:0%
帮助的人:0
展开全部
string name = ""//这是用户要输入的数据。
SqlConnection sqlconnection2 = new SqlConnection(strconnection);
sqlconnection2.Open();
SqlDataAdapter sda = new SqlDataAdapter();
DataSet ds = new DataSet();
sda.SelectCommand = new SqlCommand("zhangtianxing ", sqlconnection2 );//调用存储过程
sda.SelectCommand.CommandType = CommandType.StoredProcedure;//这一句表示SqlDataAdapter调用执行的是一个存储过程。如果没有这一句,该存储过程将不会被执行。
sda.SelectCommand.Parameters.Add("@zhangtianxing1", SqlDbType.VarChar, 50);//向存储过程传入一个参数。
sda.SelectCommand.Parameters["@zhangtianxing1"].Value = name;
sda.Fill(ds, "proname");//将数据填充至本地DataSet的proname表中。
conn.Close();

abc.DataSource = ds
abc.DataBind();
lvfan10
2007-09-18
知道答主
回答量:72
采纳率:0%
帮助的人:29.2万
展开全部
存储过程这样写
CREATE proc zhangtianxing
as
select i_id as zhangtianxing1 from test
GO
调用过程如下:
sqlcommand2.Connection = sqlconnection2;
sqlcommand2.CommandText="zhangtianxing";
abc.DataSource = sqlcommand2.ExecuteReader();

如果按你的写法的话
需要给 zhangtianxing1 赋值
sqlcommand2.Parameters["zhangtianxing1"].value="任意值即可";//如果查询为空,则返回你所付的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忘七朋真爱29
2007-09-18
知道答主
回答量:23
采纳率:0%
帮助的人:0
展开全部
前面少了一句代码
sqlcommand2.CommandType=CommandType.StoreProdure;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0bf9ef5b2
2007-09-18 · TA获得超过139个赞
知道答主
回答量:208
采纳率:0%
帮助的人:74.8万
展开全部
呵呵,网上高手就是多,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友570d20bf9
2007-09-18
知道答主
回答量:59
采纳率:0%
帮助的人:16.8万
展开全部
这么多答案 也不用我答了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式