איך לקרוא ל-2 פרוצד...
 
התראות
מחק הכל

איך לקרוא ל-2 פרוצדורות של SQL מתוכנית C#?

1 שרשורים
1 Users
0 Likes
131 צפיות
שרשורים: 3
Admin
Topic starter
(@kerendanino)
משתמש
הצטרף/ה: לפני שנה 1

כדי לקרוא לשתי פרוצדורות אפשר להשתמש באחת מהדרכים הנפוצות האלה:

1. קריאה סדרתית לפרוצדורות.

using (SqlConnection conn = new SqlConnection(connectionString))
{
    conn.Open();
    using (SqlCommand cmd = new SqlCommand("StoredProcedure1", conn))
    {
        cmd.CommandType = CommandType.StoredProcedure;
        // Set parameters for cmd here
        cmd.ExecuteNonQuery();
    }
    using (SqlCommand cmd = new SqlCommand("StoredProcedure2", conn))
    {
        cmd.CommandType = CommandType.StoredProcedure;
        // Set parameters for cmd here
        cmd.ExecuteNonQuery();
    }
}

2. עטיפת 2 הפוצדורות בשלישית ב-SQL וקריאה לפרוצדורה העוטפת.

קוד ה-SQL יראה כך:

CREATE PROCEDURE dbo.WrapperProcedure
AS
BEGIN
    EXEC dbo.StoredProcedure1;
    EXEC dbo.StoredProcedure2;
END;

קוד ה-API יקרא לפרוצדורה:

using (SqlConnection conn = new SqlConnection(connectionString))
{
    conn.Open();
    using (SqlCommand cmd = new SqlCommand("WrapperProcedure", conn))
    {
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.ExecuteNonQuery();
    }
}

אם יש צורך לשלוח פרמטרים לשתי הפרוצדורות, נגדיר את כל הפרמטרים ב-API ונקבל לכל פרוצדורה את הפרמטרים שמתאימים לה.

כל פרוצדורה מקבלת את הפרמטרים שלה:

CREATE PROCEDURE dbo.WrapperProcedure
    @Param1 DataType1,
    @Param2 DataType2
AS
BEGIN
    -- Call the first stored procedure
    EXEC dbo.StoredProcedure1 @Param1;

    -- Call the second stored procedure
    EXEC dbo.StoredProcedure2 @Param2;
END;

בקריאה של ה-API כל הפרמטרים נשלחים יחד:

using System.Data;
using System.Data.SqlClient;

// ...

using (SqlConnection conn = new SqlConnection(connectionString))
{
    conn.Open();

    using (SqlCommand cmd = new SqlCommand("WrapperProcedure", conn))
    {
        cmd.CommandType = CommandType.StoredProcedure;

        // Add parameters for the wrapper procedure
        cmd.Parameters.Add(new SqlParameter("@Param1", valueForParam1));
        cmd.Parameters.Add(new SqlParameter("@Param2", valueForParam2));

        // Execute the wrapper procedure
        cmd.ExecuteNonQuery();
    }
}

 

 

Share: