2016-04-04 1 views
0

私は見出しがそれを言うと思います。MS SQLテーブルの新しい行の後にC#-Codeを実行するには

私のMS SQL-Tableが新しい行を取得した後にC#-Codeを実行しようとしています。 誰も私にそれをする方法を説明できますか?

私はC#-Class 'SqlDependency'で試してみましたが、これは正しいソリューションではないと思います。なぜならC#コードは常に再起動する必要があるからです。

T-SQLとSQL-Agentなどで試してみるべきでしょうか?たぶん私はC#で完全に間違っている、私は知らないと私は本当にあなたの助けが必要です!

私はここにかなり新しいですので、:)私と一緒に少しの忍耐を持っているオーストリア から

挨拶してくださいGazza

+0

試してみましたか? Sqlデータクライアントの実行後にC#コードを配置すると、より明確になりますか? – Greg

+0

私はMS-SQL-TableをC#-Class 'SqlDependency'で監視しようとしました。 私の考えは、SqlDependency-Classが私のテーブルの変更に応答して、結果として提供されたコードを実行するということでした。 – Gazza

+0

これをすべてSQLサーバー側でやりたいのですか?またはアプリケーションから? サーバー側では、C#CLRをコンパイルしてトリガーから実行できます。 (私はトリガのファンではない) – MiloTheGreat

答えて

0

あなたはシンプルなソリューションをしたい場合は、ちょうどこの試すことができます:

System.Data.SqlClientを使用してDatabaseに接続してください:

次に、特定の条件で "RowCountCheck"を実行するタイマーを使用できますC区間:

Timer timer = new Timer();  //using using System.Timers; 
timer.Interval = 5000;   //Time for 1 interval in milliseconds 
timer.AutoReset = true;   //Start again when elapsed 
timer.Elapsed += Timer_Elapsed; //Method called when timer elapsed 

private int _lastRowCount; 

private void Timer_Elapsed(object sender, ElapsedEventArgs e) 
{ 
    //Check row Count 
    //Use your SqlClient here to get the rowCount 


    if(_lastRowCount < currentRowCount) 
    { 
     //Row was added: Do your work here: 
    } 


    //Set the currentRowCount as _lastRowCount for the next check 
    _lastRowCount = "yourValue"; 
} 

リンク:

http://www.w3schools.com/sql/sql_func_count.asp - SQL表

https://msdn.microsoft.com/de-de/library/system.data.sqlclient(v=vs.110).aspxから行カウントを取得する方法 - あなたは何をしたSqlClient

+0

それは私に論理的に聞こえる。しかし、私の愚かな疑問を言いなさい、私はC#でこのすべてにすることができますか? – Gazza

+0

私の答えは一秒くらいです:D –

+0

@Gazzaはそれがあなたに役立つかどうかを見てみましょう:D –