如何在返回表的asp文件中调用SQL Server存储过程

时间:2013-07-18 10:36:20

标签: c# asp.net visual-studio-2010 sql-server-2008 stored-procedures

我是ASP.NET新手。首先,我在SQL Server 2008中创建了一个数据库,在其中,我创建了一个存储过程Getdata。我想从我的ASP.NET页面调用此存储过程。

在ASP.NET中,我有一个母版页,其中有一些其他页面,如home,about等。我想在用户点击Getdata时运行Home存储过程。

存储过程是:

Create procedure Getdata
as 
begin
   select * from Log_Users
end

我的主页代码是

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Untitled Page" %>

<%@ MasterType VirtualPath="~/MasterPage.master" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <h2>This is a the HOME page.</h2>
</asp:Content>

及其aspx.cs文件代码为:

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        this.Master.PageName = "Home";
    }
}

有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

var query = "YourStoredProcName";
var conStr = ConfigurationManager.ConnectionStrings["StringName"].ConnectionString;
var con = new SqlConnection(conStr);
var cmd = new SqlCommand(query, con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@parameterName", parameterValue); //If any

//Open connection - load result into datatable
con.Open();
var reader = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
con.Close();

conStr既可以采用该格式(使用web.config存储的连接字符串),也可以采用原始字符串形式。我推荐这种方式。运行之后,您将拥有一个包含存储过程结果的数据表(dt),您可以随意操作它!

您可以通过将数据库添加为项目的数据源并在数据源属性中找到它来找到连接字符串(可能有另一种方法可以执行此操作)。

答案 1 :(得分:0)

DataTable dt = new DataTable();

using (var myConnection = new SqlConnection(connectionstring))
{
    using (var myCommand = new SqlCommand("Getdata", myConnection))
    {
        myCommand.CommandType = CommandType.StoredProcedure;
        SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(myCommand);
        mySqlDataAdapter.Fill(dt);
    }
}

您可能需要将此DataTable设置为Gridview的数据源或要显示的内容