खोज…


एक आदेश निष्पादित करें जो कोई परिणाम नहीं देता है

IDBConnection db = /* ... */  
var id = /* ... */

db.Execute(@"update dbo.Dogs set Name = 'Beowoof' where Id = @id",
   new { id });

संग्रहित प्रक्रियाएं

सरल उपयोग

Dapper पूरी तरह से संग्रहीत procs का समर्थन करता है:

var user = conn.Query<User>("spGetUser", new { Id = 1 }, 
                            commandType: CommandType.StoredProcedure)
           .SingleOrDefault();

इनपुट, आउटपुट और रिटर्न पैरामीटर

यदि आप कुछ अधिक फैंसी चाहते हैं, तो आप कर सकते हैं:

var p = new DynamicParameters();
p.Add("@a", 11);
p.Add("@b", 
      dbType: DbType.Int32, 
      direction: ParameterDirection.Output);
p.Add("@c", 
      dbType: DbType.Int32, 
      direction: ParameterDirection.ReturnValue);

conn.Execute("spMagicProc", p, 
             commandType: CommandType.StoredProcedure); 

var b = p.Get<int>("@b");
var c = p.Get<int>("@c"); 

तालिका मान्य पैरामीटर

यदि आपके पास एक संग्रहीत कार्यविधि है जो किसी तालिका मान्य पैरामीटर को स्वीकार करती है, तो आपको एक DataTable पास करना होगा जिसमें SQL सर्वर में तालिका प्रकार के समान संरचना हो। यहां तालिका प्रकार और प्रक्रिया के उपयोग की परिभाषा दी गई है:

CREATE TYPE [dbo].[myUDTT] AS TABLE([i1] [int] NOT NULL);
GO
CREATE PROCEDURE myProc(@data dbo.myUDTT readonly) AS
SELECT i1 FROM @data;
GO
/*
-- optionally grant permissions as needed, depending on the user you execute this with.
-- Especially the GRANT EXECUTE ON TYPE is often overlooked and can cause problems if omitted.
GRANT EXECUTE ON TYPE::[dbo].[myUDTT] TO [user];
GRANT EXECUTE ON dbo.myProc TO [user];
GO
*/

उस प्रक्रिया को c # के भीतर से कॉल करने के लिए, आपको निम्नलिखित कार्य करने होंगे:

// Build a DataTable with one int column
DataTable data = new DataTable();
data.Columns.Add("i1", typeof(int));
// Add two rows
data.Rows.Add(1);
data.Rows.Add(2);

var q = conn.Query("myProc", new {data}, commandType: CommandType.StoredProcedure);


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow