我是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";
}
}
有人可以帮我吗?
答案 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的数据源或要显示的内容