Code:Class1
using System;
using [Link];
using [Link];
using [Link];
using [Link];
namespace SC_af3cbb89085a40ddbb0482d524d4e620.Properties
public class CarSale
public string Car_id { get; set; }
public long Date { get; set; } // Unix timestamp (milliseconds)
public string Customer_Name { get; set; }
public string Gender { get; set; }
public long Annual_Income { get; set; }
public string Dealer_Name { get; set; }
public string Company { get; set; }
public string Model { get; set; }
public string Engine { get; set; }
public string Transmission { get; set; }
public string Color { get; set; }
public double Price { get; set; }
public string Dealer_No { get; set; } // Bỏ dấu cách ở cuối
public string Body_Style { get; set; }
public double Phone { get; set; }
public string Dealer_Region { get; set; }
[Link]
#region Help: Introduction to the Script Component
/* The Script Component allows you to perform virtually any operation that
can be accomplished in
* a .Net application within the context of an Integration Services data flow.
* Expand the other regions which have "Help" prefixes for examples of
specific ways to use
* Integration Services features within this script component. */
#endregion
#region Namespaces
using [Link];
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using SC_af3cbb89085a40ddbb0482d524d4e620.Properties;
#endregion
/// <summary>
/// This is the class to which to add your code. Do not change the name,
attributes, or parent
/// of this class.
/// </summary>
[[Link]]
public class ScriptMain : UserComponent
#region Help: Using Integration Services variables and parameters
/* To use a variable in this script, first ensure that the variable has been
added to
* either the list contained in the ReadOnlyVariables property or the list
contained in
* the ReadWriteVariables property of this script component, according to
whether or not your
* code needs to write into the variable. To do so, save this script, close
this instance of
* Visual Studio, and update the ReadOnlyVariables and
ReadWriteVariables properties in the
* Script Transformation Editor window.
* To use a parameter in this script, follow the same steps. Parameters are
always read-only.
* Example of reading from a variable or parameter:
* DateTime startTime = [Link];
* Example of writing to a variable:
* [Link] = "new value";
*/
#endregion
#region Help: Using Integration Services Connnection Managers
/* Some types of connection managers can be used in this script
component. See the help topic
* "Working with Connection Managers Programatically" for details.
* To use a connection manager in this script, first ensure that the
connection manager has
* been added to either the list of connection managers on the Connection
Managers page of the
* script component editor. To add the connection manager, save this
script, close this instance of
* Visual Studio, and add the Connection Manager to the list.
* If the component needs to hold a connection open while processing
rows, override the
* AcquireConnections and ReleaseConnections methods.
* Example of using an [Link] connection manager to acquire a
SqlConnection:
* object rawConnection =
[Link](transaction);
* SqlConnection salesDBConn = (SqlConnection)rawConnection;
* Example of using a File connection manager to acquire a file path:
* object rawConnection =
Connections.Prices_zip.AcquireConnection(transaction);
* string filePath = (string)rawConnection;
* Example of releasing a connection manager:
* [Link](rawConnection);
*/
#endregion
#region Help: Firing Integration Services Events
/* This script component can fire events.
* Example of firing an error event:
* [Link](10, "Process Values", "Bad value", "", 0,
out cancel);
* Example of firing an information event:
* [Link](10, "Process Values", "Processing
has started", "", 0, fireAgain);
* Example of firing a warning event:
* [Link](10, "Process Values", "No rows were
received", "", 0);
*/
#endregion
/// <summary>
/// This method is called once, before rows begin to be processed in the
data flow.
///
/// You can remove this method if you don't need to do anything here.
/// </summary>
public override void PreExecute()
[Link]();
/*
* Add your code here
*/
/// <summary>
/// This method is called after all the rows have passed through this
component.
///
/// You can delete this method if you don't need to do anything here.
/// </summary>
public override void PostExecute()
[Link]();
/*
* Add your code here
*/
public override void CreateNewOutputRows()
try
{
// Đọc file JSON từ đường dẫn
string jsonFileContent = [Link](@"C:\Users\nguye\OneDrive\
Desktop\Newfolder\new_car_sales.json");
[Link](jsonFileContent);
// Chuyển đổi JSON thành danh sách đối tượng
JavaScriptSerializer js = new JavaScriptSerializer();
[Link] = [Link]; // Cho phép JSON có độ dài tối
đa
List<CarSale> carSales =
[Link]<List<CarSale>>(jsonFileContent);
foreach (CarSale sale in carSales)
[Link]();
[Link] = sale.Car_id;
[Link] = sale.Customer_Name;
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = (double)[Link];
[Link] = sale.Dealer_No;
[Link] = sale.Body_Style;
[Link] = (double)[Link];
[Link] = sale.Dealer_Region;
[Link] = sale.Dealer_Name;
[Link] = sale.Annual_Income;
// Chuyển đổi timestamp thành DateTime
[Link] = ConvertFromUnixTimestamp([Link]);
catch (Exception ex)
[Link]("Lỗi: " + [Link]());
throw; // Để SSIS báo lỗi thay vì bỏ qua
// Hàm chuyển đổi Unix Timestamp (milliseconds) sang DateTime
private DateTime ConvertFromUnixTimestamp(long timestamp)
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0,
[Link]);
return [Link](timestamp).ToLocalTime().Date; // Chỉ lấy
ngày (không có giờ)