Ако имате множество заявки във вашия скриптов файл, тогава трябва да подобрите скрипта си с @rowsAffected
променлива, както е показано в T-SQL по-долу. След това във вашия C# код ще трябва да извикате ExecuteScalar за да получите подробните редове, засегнати от вашия скрипт.
**Script file with @rowsAffected variable logic**
--add following variable at start of your script
DECLARE @rowsAffected VARCHAR(2000);
INSERT INTO [dbo].[Products] ([ProductName]) VALUES ('sun1'),('sun2'),('sun3');
--after each query that you want to track, include the following line
SET @rowsAffected = 'Products : ' + CAST(@@rowcount AS varchar(20));
UPDATE [dbo].[newTable] SET [ColB] = 'b' ,[ColC] = 'd',[ColD] = 'e' ,[ColE] = 'f' WHERE ColA='a';
--after each query that you want to track, include the following line
SET @rowsAffected = @rowsAffected + ', newTable : ' + CAST(@@rowcount AS varchar(20));
-- add the query below at end of your script
SELECT @rowsAffected;
Ще трябва да прочетете текста от вашия скриптов файл, както правите в кода си, и след това да създадете команден обект, използвайки текста, прочетен от файла, преди да изпълните кода във фрагмента по-долу.
C# код за изпълнение на горния скрипт
string rowsAffected =(string) command.ExecuteScalar();
//you can now use rowsAffected variable in any way you like
//it will contain something like Table1 : 4, Table2 : 6
Подробен C# код с помощта на оригиналния ви код
using (SqlConnection con = new SqlConnection(constr))
{
FileInfo file = new FileInfo(DIRECTORY OF THE SCRIPT);
string script = file.OpenText().ReadToEnd();
SqlCommand command = new SqlCommand(script, con);
command.CommandType = CommandType.Text;
try
{
con.Open();
string rowsAffected =(string) command.ExecuteScalar();
Display( rowsAffected);
con.Close();
}
catch (Exception ex)
{
con.Close();
Display(ex.Message);
}
}