私はC#で書かれた簡単なプログラムを持っています。主な目的はデータのアーカイブです。以下は、プログラムの外観のスナップショットです。テキストボックス表示プログラムで複数の行数の結果を返す
示すように、ボタンがクリックされるたびに、メッセージは、プログラムの左側に大きなテキストボックスに表示されます。今、私はRow Countという別のボタンを実装しています。この関数の目的は、そのボタンをクリックすると、自分のSQLスクリプトの1つを実行し、テーブル内のカウント数をテキストボックスに表示します。
このSQLスクリプトには、1つの行カウントクエリだけでなく、複数のテーブルの行カウントクエリが含まれています。ここでの抜粋です:
SELECT COUNT(*) AS [PromotionEventRows] FROM PromotionEvent (NOLOCK)
select top 1 EventCode as [PE - PE Code], LastChangeDate FROM PromotionEvent (NOLOCK) ORDER BY LastChangeDate DESC
SELECT COUNT(*) AS [PromotionBenefitRows] FROM PromotionBenefit (NOLOCK)
select top 1 PromotionBenefitCode as [PB - PB Code], LastChangeDate FROM PromotionBenefit (NOLOCK) ORDER BY LastChangeDate DESC
SELECT COUNT(*) AS [CardTypeBenefitRows] FROM CardTypeBenefit (NOLOCK)
select top 1 CardTypeBenefitID, LastChangeDate FROM CardTypeBenefit (NOLOCK) ORDER BY LastChangeDate DESC
私はこれを達成する方法は、ExecuteScalarがある知っているが、ここでの問題は、私は私のC#のコード内のSQLクエリを記述する必要はありませんです。むしろ私のプログラムはそのスクリプトを読んで、プログラムのテキスト表示にその数を表示したい。それをSQLサーバで結果を得るのと同じように考えてください。代わりに結果が私のプログラムのテキストボックスに表示されます。どんな提案も役に立ちます。
try
{
using (SqlConnection con = new SqlConnection(constr))
{
con.Open();
FileInfo file = new FileInfo("Directory of that SQL script");
string script = file.OpenText().ReadToEnd();
Server server = new Server(new ServerConnection(con));
server.ConnectionContext.ExecuteNonQuery(script);
Display("Whatever message display on textbox");
con.Close();
}
}
catch (Exception ex)
{
textBox1.AppendText(string.Format("{0}", Environment.NewLine));
textBox1.AppendText(string.Format("{0} MainPage_Load() exception - {1}{2}", _strThisAppName, ex.Message, Environment.NewLine));
Display(ex.Message + "message");
textBox1.AppendText(string.Format("{0}", Environment.NewLine));
Debug.WriteLine(string.Format("{0} MainPage_Load() exception - {1}", _strThisAppName, ex.Message));
}
あるので、いただきました、あなたのコードに問題Execute_StoredProは私のSP名とruntestsと書いている下記のコードから呼び出すことができますか? – CodingYoshi
問題はありません。私はそれを実現する方法を理解できません。 –
スクリプトの実行結果を取得できましたか?はいの場合は、複数の結果を得るために繰り返し成功しましたか? - 論理的には、ソリューションを取得するというコンセプトはOKですが、苦労している具体的な詳細は不明です。 – hsoesanto