/// <summary> /// �ت�:�N�W���ɮפ��e�A�s�J�Ȧs�� /// </summary> public void FileToTmp(DataTable dt, DbTransaction RootDBT, string V_DATA_SOURCE, string V_CREATEUID, string V_EFF_START, out string ErrorMsg) { bool IsRootTranscation = false; try { OUT02 dbo = new OUT02(ref USEDB); ErrorMsg = ""; //�P�_�O�_���ǤJRoot Transcation IsRootTranscation = (RootDBT == null) ? true : false; #region �Ұʥ���Ϋ��wRootTranscation if (IsRootTranscation) { //�W�ߩI�s�Ұ�Transcation Conn = USEDB.CreateConnection(); Conn.Open(); DBT = Conn.BeginTransaction(); } else { DBT = RootDBT; } #endregion #region �M��VDS_OUT_VENDOR_TMP dbo.doDeleteItemTmp(V_CREATEUID, DBT); #endregion #region FileToTmp ArrayList ParameterList = new ArrayList(); string V_RESULT = "1"; if (dt != null) { for (int i = 0; i < dt.Rows.Count; i++) { if (V_RESULT == "1") { string[] V_DATA = dt.Rows[i][0].ToString().Split(','); if (V_DATA.Length != 20) { ErrorMsg = "��J�~���������ɮץ��ѡA���ӼƤ��� 20 �ӡA���˵����`����I"; throw new Exception(ErrorMsg); } else { int [] V_LENGTH_ARRAY = {10,8,8,8,5,2,1,10,25,30,50,50,30,30,50,30,30,50,50,6}; string V_LENGTH_LIMIT = "10,17,19" ; // �i�H���ŭȪ����(���q�ǯu,�|�pE-MAIL,���f�a�}_2) // Ū�J�}�C����� string V_VENDOR = V_DATA[0]; string V_VENDOR_NAME = V_DATA[1]; string V_VENDOR_OPEN_DATE = V_DATA[2]; string V_VENDOR_CLOSE_DATE = V_DATA[3]; string V_DISCOUNT = V_DATA[4]; string V_CLS_DATE = V_DATA[5]; string V_ACCEPT_COST_TYPE = V_DATA[6]; string V_ACC_VENDOR_CODE = V_DATA[7]; string V_ACC_VENDOR_NAME = V_DATA[8]; string V_BUSINESS_FAX = V_DATA[9]; string V_BUSINESS_ADDR = V_DATA[10]; string V_BUSINESS_CONTACT = V_DATA[11]; string V_BUSINESS_EXTENSION = V_DATA[12]; string V_BUSINESS_MAIL = V_DATA[13]; string V_ACCOUNT_CONTACT = V_DATA[14]; string V_ACCOUNT_EXTENSION = V_DATA[15]; string V_ACCOUNT_MAIL = V_DATA[16]; string V_COM_ADDR = V_DATA[17]; string V_COM_ADDR_2 = V_DATA[18]; string V_LIMIT_NUM = V_DATA[19]; // ��ƪ����ˬd for (int j = 0; j < V_LENGTH_ARRAY.Length;j++ ) { // ���o���ŭȪ�����ˬd if (V_DATA[j].Length <= 0 && V_LENGTH_LIMIT.IndexOf((j+1).ToString()) == -1) { ErrorMsg = string.Format("��J�~���������ɮץ��ѡA��{0}����ơA��{1}�����A�H�Ϥ��o���ŭȪ�����", i, j); throw new Exception(ErrorMsg); } // �����ת��ˬd if (V_DATA[j].Length > V_LENGTH_ARRAY[j]) { ErrorMsg = string.Format("��J�~���������ɮץ��ѡA��{0}����ơA��{1}�����A��ƪ��W�L����", i, j); throw new Exception(ErrorMsg); } } // ��ƫ��O�ˬd int V_IntTryParse; Decimal V_DecTryParse; if (!Decimal.TryParse(V_DISCOUNT, out V_DecTryParse) && !int.TryParse(V_LIMIT_NUM, out V_IntTryParse)) { ErrorMsg = "��J�~���������ɮץ��ѡA���˵����`����I"; throw new Exception(ErrorMsg); } ParameterList.Clear(); ParameterList.Add(V_DATA_SOURCE); ParameterList.Add(V_EFF_START); ParameterList.Add(dt.Rows[i][0].ToString()); ParameterList.Add(V_CREATEUID); ParameterList.Add(System.DateTime.Now); dbo.doCreateItemTmp(ParameterList, DBT, out V_RESULT); } } } } #endregion #region TmpToDB dbo.doCreateItem(Convert.ToDateTime(V_EFF_START), V_CREATEUID, DBT, out V_RESULT); if (V_RESULT == "0") ErrorMsg = "��J�~���������ɮץ��ѡA���˵����`����I"; #endregion if (IsRootTranscation) { //�W�ߩI�sTranscation���� DBT.Commit(); } } catch (Exception ex) { #region ������� DBT.Rollback(); #endregion throw ex; } finally { #region �P�_�O�_��������s�u if (IsRootTranscation) { //�W�ߩI�sTranscation,�����s�u if (Conn.State == ConnectionState.Connecting) { Conn.Close(); } } #endregion } }