Nếu bạn có nhiều truy vấn trong tệp tập lệnh của mình, thì bạn nên cải tiến tập lệnh của mình bằng @rowsAffected
biến như được hiển thị trong T-SQL bên dưới. Sau đó, trong mã C # của bạn, bạn sẽ cần gọi ExecuteScalar để có được các hàng chi tiết bị ảnh hưởng bởi tập lệnh của bạn.
**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;
Bạn sẽ phải đọc văn bản từ tệp tập lệnh của mình, giống như bạn đang làm trong mã của mình, sau đó tạo đối tượng lệnh bằng văn bản đọc từ tệp trước khi thực thi mã trong đoạn mã bên dưới.
Mã C # để thực thi tập lệnh trên
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
Mã C # chi tiết sử dụng mã gốc của bạn
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);
}
}