在C#中的SQL Server存储功能的访问结果

我创建SQL Server中的一些存储功能,它通过一个se​​lect语句返回表。 像这样:

CREATE FUNCTION [dbo].[mFunSelectStudents] () RETURNS @result TABLE (IDStudent int, Name nchar(50), Password nchar(50)) AS BEGIN INSERT INTO @result select * from School.dbo.Student RETURN END

我试图将功能分配给在C#像这样的SqlDataAdapter的:

SqlCommand cmd = new SqlCommand("mFunSelectStudents", con); SqlDataAdapter adpStudents = new SqlDataAdapter(); adpStudents.SelectCommand = cmd;

但是,这并不工作..

其中, @result是所存储的函数的返回参数。 现在,我该如何调用在C#中的功能和数据分配到网格?

任何帮助表示赞赏..

--------------解决方案-------------

命令不能函数只是名称。 你应该把一个SQL命令,在那里和SQL一个接从中选择,这样从TVF检索数据:

SELECT * FROM dbo.mFunSelectStudents()

因此,你的C#代码段的第一行应该是:

SqlCommand cmd = new SqlCommand("SELECT * FROM dbo.mFunSelectStudents()", con);

换行功能在存储过程中,或自行开展工作,在一个SP。 一个SELECT语句的结果将作为C#客户端的DataTable访问。

create proc selectSomeData
.
.
.

在客户端,你的命令类型将是StoredProcedure的和在CommandText将是sp。的名称。

你的第一个行:

CMD的SqlCommand =新的SqlCommand(“mFunSelectStudents”CON);

是正确的,但是这一次,你应该检查一下

SqlDataAdapter的adpStudents.SelectCommand = CMD;

首先,你需要使用新的SqlDataAdapter的,然后才能分配的SelectCommand,如下所示:

SqlDataAdapter adpStudents = new SqlDataAdapter(cmd);

分配命令给DataAdapter

adpStudents.SelectCommand = cmd;

然后你准备一个数据集

DataSet ds = new DataSet();

与你的DataAdapter填充它

adpStudents.Fill(ds);

它分配给您的网格

gridName.DataSource = ds;

并调用DataBind更新对电网的信息

gridName.DataBind();

分类:C# 时间:2012-03-08 人气:0
本文关键词: SQL服务器,存储过程
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.754 (s). 10 q(s)