0

ASP.NET は初めてです。まず、SQL Server 2008 でデータベースを作成し、その中にストアド プロシージャを作成しましたGetdata。ASP.NET ページからこのストアド プロシージャを呼び出したいと考えています。

GetdataASP.NET には、ホームなどの他のページを含むマスター ページがあります。ユーザーが をクリックしたときに、ストアド プロシージャを実行したいと考えています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";
    }
}

誰でも私を助けてもらえますか?

4

2 に答える 2

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のデータソースまたは表示するものとして設定する必要がある場合があります

于 2013-07-18T10:46:12.707 に答える
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) が作成されます。これを自由に操作できます。

プロジェクトのデータ ソースとしてデータベースを追加し、データ ソースのプロパティで接続文字列を見つけることができます (これを行う別の方法がある場合があります)。

于 2013-07-18T10:43:50.270 に答える