करने के लिए सम्मिलित करें:
Change Notification with Sql Server 2008उत्प्रेरक Windows सेवा जब नया रिकार्ड संभव डुप्लिकेट डीबी
Am बस सोच रहा है वैसे भी मैं सी # में एक खिड़कियों सेवा है कि ट्रिगर हो जाएगा लिख सकते हैं जब नया रिकॉर्ड डेटाबेस में डाला जाता है।
और मैं डीबी के माध्यम से डीबी को भी कनेक्ट करना चाहता हूं। कृपया कोई विचार या सुझाव दें।
अग्रिम में धन्यवाद।
डेमो.बी निर्देश के आधार पर, यहां कोड है।
एसक्यूएल डाटाबेस विवरण
मेरे डेटाबेस नाम: MyWeb, टेबल का नाम: StoryItems, कॉलम: स्थान, शीर्षक, नाम, शैली।
public partial class Triggers
{
// Enter existing table or view for the target and uncomment the attribute line
[Microsoft.SqlServer.Server.SqlTrigger(Name = "Trigger_Web", Target = "StoryItems", Event = "FOR INSERT")]
public static void Trigger_Web()
{
SqlCommand command;
SqlTriggerContext triggerContext = SqlContext.TriggerContext;
SqlPipe pipe = SqlContext.Pipe;
SqlDataReader reader;
if (triggerContext.TriggerAction == TriggerAction.Insert)
{
using (SqlConnection connection = new SqlConnection(@"context connection=true"))
{
connection.Open();
command = new SqlCommand(@"SELECT * FROM StoryItems", connection);
reader = command.ExecuteReader();
reader.Read();
// get inserted value
// ***********Here am trying to retrieve the location and name column value
Location= (string)reader[9];
Name= (String) reader[9];
reader.Close();
try
{
// try to pass parameter to windows service
WindowsService param = new WindowService(InsertedValue1, InsertedValue2);
}
catch (Exception ex)
{
}
// Replace with your own code
SqlContext.Pipe.Send("Trigger FIRED");
}
}
}
}
कुछ कैसे यह स्तंभ नाम पसंद नहीं करता है, यकीन है कि यहाँ क्या याद आ रही है नहीं कर रहा हूँ। "Trigger_Web" मेरे CLR सपा नाम है।
मुझे खुशी है कि तुम क्या दिखाया है तालिका के नाम एक है अपने विधि इस तरह दिखना चाहिए उदाहरण (जो समस्या को हल करता है), लेकिन ... मुझे कल्पना है कि अगर आपको केवल एक मूल्य मिल रहा है तो यह 'शीर्ष 1 * चुनें' अन्यथा SQL सर्वर परिणाम स्पूल जारी रख सकता है। और 'पाठक' होना चाहिए 'डिस्प्ले', न कि 'क्लोज़' किया। –
धन्यवाद बहुत डेमो.बी, क्या होगा मेरी विंडोज सेवा दूरस्थ स्थान पर चल रही है या मेरे एसक्यूएल सर्वर दूरस्थ स्थान पर चल रहा है। उस स्थिति में, डब्ल्यूसीएफ या किसी भी सेवा संचार और ट्रिगर करने का एकमात्र विकल्प है, कृपया मुझे सही करें गलत। – Usher
जब मैं एक नई परियोजना बनाने की कोशिश करता हूं तो मुझे काफी दिलचस्प चेतावनी मिली "नोट: यदि आपके पास आपके विकास कंप्यूटर पर स्थापित नेट फ्रेमवर्क संस्करण 3.5 नहीं है, तो आपको इसे स्थापित करना होगा यदि आप एसक्यूएल सर्वर 2005 के लिए एसक्यूएल सीएलआर असेंबली विकसित करना चाहते हैं या एसक्यूएल सर्वर 2008 उन असेंबली का समर्थन करता है जो .NET Framework के 2.0,3.0 या 3.5 संस्करण को लक्षित करते हैं। आप प्रोजेक्ट गुणों में .Net Framework संस्करण निर्दिष्ट करते हैं। अधिक जानकारी के लिए F1 दबाएं। " – Usher