超级简单的送分题,大家都来看看

91619600 2003-08-19 10:15:00
在sql server2000的某个数据库下已经写好了一个存储过程,该过程有输入参数也有返回值,我想在页面上调用它,应该怎么做?
...全文
23 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
gd4134 2003-08-19
  • 打赏
  • 举报
回复
也不知道我理解的对不对,
string source="server=localhost;uid=sa;pwd=;database=数据库名";
SqlConnection conn=new SqlConnection(source);
SqlCommand Mycommand=new SqlCommand("存储过程名",conn);
KevinCao 2003-08-19
  • 打赏
  • 举报
回复
如果楼上的几个回复不是你想问的,那我想很多人还是不知道你想问什么
91619600 2003-08-19
  • 打赏
  • 举报
回复
各位好像误解了我的意思。我指的是在企业管理器->localserver—>(数据库名)->存储过程下的一个存储过程,完全是由SQL文写的,任何程序都可以调用它。比如DELPHI可以使用Tstoredproc来绑定,我希望在asp.net下实现绑定,如何?
acewang 2003-08-19
  • 打赏
  • 举报
回复
最简单的例子:
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<html>
<script language="VB" runat="server">

Sub Page_Load(Sender As Object, E As EventArgs)

Dim DS As DataSet
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

MyConnection = New SqlConnection("server=(local)\NetSDK;database=northwind;Trusted_Connection=yes")
MyCommand = New SqlDataAdapter("Ten Most Expensive Products", MyConnection)

MyCommand.SelectCommand.CommandType = CommandType.StoredProcedure

DS = new DataSet()
MyCommand.Fill(DS, "Products")

MyDataGrid.DataSource=DS.Tables("Products").DefaultView
MyDataGrid.DataBind()
End Sub

</script>

<body>

<h3><font face="Verdana">Simple Stored Proc Select to a DataGrid Control</font></h3>

<ASP:DataGrid id="MyDataGrid" runat="server"
Width="360"
BackColor="#ccccff"
BorderColor="black"
ShowFooter="false"
CellPadding=3
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
EnableViewState="false"
/>

</body>
</html>
chnking 2003-08-19
  • 打赏
  • 举报
回复
myParameter = new SqlParameter("@class", SqlDbType.NVarChar, 20);
myParameter.Value = Class.Trim();
cmd.Parameters.Add(myParameter); //一般输入参数

myParameter = new SqlParameter("@description", SqlDbType.NVarChar, 1000);
myParameter.Value = Description;
cmd.Parameters.Add(myParameter); //一般输入参数

myParameter = new SqlParameter("@serialno", SqlDbType.NVarChar, 15);
myParameter.Direction = ParameterDirection.Output;
cmd.Parameters.Add(myParameter); //输出参数

myParameter = new SqlParameter("@return", SqlDbType.Int);
myParameter.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(myParameter); //返回值

cmd.ExecuteNonQuery();

int _Return = (int)cmd.Parameters["@return"].Value; //获取返回值
string str = (String)cmd.Parameters["@serialno"].Value; //获取输出参数
seesea125 2003-08-19
  • 打赏
  • 举报
回复
给你个例子
public DataSet ExeForSp(string sqname, string [,] array )
{
try
{
DataSet dset =new DataSet();
SqlDataAdapter dp=new SqlDataAdapter();


SqlCommand cmmd = new SqlCommand();
dp.SelectCommand=cmmd;
dp.SelectCommand.Connection =this.conn;
dp.SelectCommand.CommandType=CommandType.StoredProcedure;
dp.SelectCommand.CommandText =sqname;
for(int i=0;i<=array.GetUpperBound(0);i++)
{

if(array[i,0]!=null)
{
SqlParameter Parm = dp.SelectCommand.Parameters.Add( array[i,0].ToString(), SqlDbType.NVarChar);
Parm.Value =array[i,1].ToString();
}
}
dp.Fill(dset);
return dset;
}
catch(System.Exception e)
{
throw e;
}
}
91619600 2003-08-19
  • 打赏
  • 举报
回复
其实各位从一开始就理解我的意思了,因为以前没写过存储过程,用的又是VB做脚本,所以是我没有理解各位写的东西,很抱歉!
91619600 2003-08-19
  • 打赏
  • 举报
回复
成功了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
感谢各位的热情帮助,尤其是seesea125(雨天)和chnking(kent)。chnking(kent)的注释很详细,让我这个初学者受益不少啊,呵呵!请记住我的id,以后多多帮忙啊……
91619600 2003-08-19
  • 打赏
  • 举报
回复
多谢各位,我正在测试中……
chnking 2003-08-19
  • 打赏
  • 举报
回复
上次给的可能少了些东西,这次给全了:

string dsn = "连接串";
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(dsn);
conn.Open();
cmd.Connection = conn;
cmd.CommandText = "StoredProcedure_name"; //命令设为一个存储过程名,这个存储过程 //有两个输入参数,一个输出参数,一个返回值
cmd.CommandType = CommandType.StoredProcedure; //命令类型设为存储过程

myParameter = new SqlParameter("@class", SqlDbType.NVarChar, 20);
myParameter.Value = Class.Trim();
cmd.Parameters.Add(myParameter); //一般输入参数

myParameter = new SqlParameter("@description", SqlDbType.NVarChar, 1000);
myParameter.Value = Description;
cmd.Parameters.Add(myParameter); //一般输入参数

myParameter = new SqlParameter("@serialno", SqlDbType.NVarChar, 15);
myParameter.Direction = ParameterDirection.Output;
cmd.Parameters.Add(myParameter); //输出参数

myParameter = new SqlParameter("@return", SqlDbType.Int);
myParameter.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(myParameter); //返回值

cmd.ExecuteNonQuery();

int _Return = (int)cmd.Parameters["@return"].Value; //获取返回值
string str = (String)cmd.Parameters["@serialno"].Value; //获取输出参数

conn.Close();
seesea125 2003-08-19
  • 打赏
  • 举报
回复
只有两个参数或以下的存储过程,SqlCommand Mycommand=new SqlCommand("存储过程名",conn);
是对的,如果多于两个,一定要用
dp.SelectCommand.CommandType=CommandType.StoredProcedure;
dp.SelectCommand.CommandText =sqname;
SqlParameter Parm = dp.SelectCommand.Parameters.Add();方式,就是我说的例子
91619600 2003-08-19
  • 打赏
  • 举报
回复
那个地方的字符会被认为是变量而不是存储过程。是不是要通过什么东西来把它们连起来?
91619600 2003-08-19
  • 打赏
  • 举报
回复
dg4134(dg4134),你理解的很正确,不过我先试试你说的。这是把sqlcommand.commandtext属性的值从原来的select变成了存储过程。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧