簡體   English   中英

來自數據庫存儲過程的Gridview數據源

[英]Gridview datasource from database stored procedure

這是數據庫存儲過程:

ALTER PROCEDURE [dbo].[getShift]
    @rfiddata VARCHAR(50)
AS
BEGIN
    SELECT 
        pd.TP, s.s_name, dt.dt_type, dr.dr_date
    FROM 
        TA_System_PersonalDetails pd
    INNER JOIN 
        TA_System_DutyRequest dr ON pd.TP = DR.TP
    INNER JOIN 
        TA_System_Duty d ON dr.d_ID = d.d_ID
    INNER JOIN 
        TA_System_Shift s ON d.s_ID = s.s_ID
    INNER JOIN 
        TA_System_DutyType dt ON d.dt_ID = dt.dt_ID
    WHERE 
        pd.rfid_card = @rfiddata
        AND dr.dr_date = CAST(GETDATE() AS DATE)
END

這是C#代碼:

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
con.Open();

SqlCommand cmd = new SqlCommand("dbo.getShift", con);
cmd.Parameters.AddWithValue("@rfiddata", data);
cmd.CommandType = CommandType.StoredProcedure;

gvDetails.DataSource = cmd.ExecuteNonQuery();
con.Close();

gridview仍然無法顯示該值。 這個項目是Windows形式的C#。 因此,沒有DataBind()函數。 先謝謝您的幫助!

我希望這段代碼對您有所幫助

首先我們創建一個連接器來連接數據庫

string cnStr = @"Persist Security Info=False;User ID=usr;password=pwe; Initial Catalog=theDataBase;Data Source=yourDatasource";

並創建一個SqlCommand ,然后將CommandType設置為StoredProcedure

SqlCommand cmd = new SqlCommand();

然后創建一個SqlConnection並打開數據庫:

using(SqlConnection con = new SqlConnection(cnStr))
{

   con.Open();

   cmd.Connection = con;
   cmd.CommandText = "dbo.getShift";    // this is the stored procedure to       execute
   cmd.CommandType = CommandType.StoredProcedure;

 }//Connection automatically closes here without the need to call conn.Close()

然后創建一個數據集以填充為gridview的數據源:

DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);

grdYourGrid.DataSource = ds;
grdYourGrid.DataBind();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM