public bool isUpdatable(DataSet i_ds, string i_TableName) { Debug.Assert(!(m_Connection == null), "Ban chua viet BeginTranaction"); CCommandBuilder v_cb = new CCommandBuilder(m_Connection, i_ds, i_TableName); System.Data.SqlClient.SqlCommand v_cmd = default(System.Data.SqlClient.SqlCommand); v_cmd = v_cb.getUpdatableCommand(); v_cmd.Connection = m_Connection; v_cmd.Transaction = m_Trans; v_cmd.CommandType = CommandType.StoredProcedure; try { v_cmd.ExecuteNonQuery(); return true; } catch (System.Exception v_e) { throw (v_e); } }
//' 12/09/2013: LinhDH thêm private decimal ExecuteCommandInsertLog(DataSet i_ds, string i_TableName, DMLCommandType i_DMLCommandType, decimal i_dcIdNguoiDung, string i_strTenThamSo, decimal i_dcID) { // Đây là lệch excecute các command // tạo connection và command System.Data.SqlClient.SqlConnection v_cn = default(System.Data.SqlClient.SqlConnection); if (m_HaveTrans) { v_cn = m_Connection; } else { v_cn = CProvider.getConnection(); } CCommandBuilder v_cb = new CCommandBuilder(v_cn, i_ds, i_TableName); System.Data.SqlClient.SqlCommand v_cmd = default(System.Data.SqlClient.SqlCommand); SqlParameter v_out_para = default(SqlParameter); v_out_para = null; switch (i_DMLCommandType) { case DMLCommandType.DeleteCommand: v_cmd = v_cb.getDeleteCommand(); break; case DMLCommandType.InsertCommand: v_cmd = v_cb.getInsertCommandInsertLog(i_dcIdNguoiDung, i_strTenThamSo); v_out_para = v_cmd.Parameters["@ID"]; break; case DMLCommandType.UpdateCommand: v_cmd = v_cb.getUpdateCommandInsertLog(i_dcIdNguoiDung, i_strTenThamSo); break; case DMLCommandType.DeleteByIDCommand: v_cmd = v_cb.getDeleteByIDCommandInsertLog(i_dcID, i_dcIdNguoiDung, i_strTenThamSo); break; } v_cmd.CommandTimeout = C_COMMAND_TIME_OUT; // thực hiện lệnh DML if (m_HaveTrans) { v_cmd.Transaction = m_Trans; v_cmd.Connection = m_Trans.Connection; } else { //Trai lai thi phai tao mo connection da co v_cmd.Connection.Open(); } //Bien luu id vua insert vao trong truong hop insert decimal v_dc_new_id = 0; try { v_cmd.ExecuteNonQuery(); //Neu trong truong hop insert thi phai tra lai id vua moi insert vao if (i_DMLCommandType == DMLCommandType.InsertCommand) { v_dc_new_id = System.Convert.ToDecimal(v_out_para.Value); } } catch (System.Exception v_e) { throw (v_e); } finally { //Neu khong co transaction thi phai dong connection lai if (!m_HaveTrans) { v_cmd.Connection.Close(); } } //Trong truong hop Insert thi tra ve id vua insert //Nguoc lai tra ve 0 return v_dc_new_id; }
public void FillDataset( DataSet i_ds , string i_TableName , string i_strDieuKien ) { // Lấy một dataset từ csdl dựa trên điều kiện cho trước System.Data.SqlClient.SqlDataAdapter v_da = CProvider.getAdapter(); CCommandBuilder v_cb = default(CCommandBuilder); if (!m_HaveTrans) //Csung update { // Tạo ra connection System.Data.SqlClient.SqlConnection v_cn = CProvider.getConnection(); v_cb = new CCommandBuilder(v_cn, i_ds, i_TableName); // Tạo ra adapter v_da.SelectCommand = v_cb.getSelectCommand(i_strDieuKien); } else { v_cb = new CCommandBuilder(this.m_Connection, i_ds, i_TableName); v_da.SelectCommand = v_cb.getSelectCommand(i_strDieuKien); v_da.SelectCommand.Transaction = m_Trans; v_da.SelectCommand.Connection = this.m_Connection; } v_da.SelectCommand.CommandTimeout = C_COMMAND_TIME_OUT; // Lấy dữ liệu từ DB try { v_da.Fill(i_ds, i_TableName); } catch (System.Exception v_e) { throw (v_e); } finally { v_cb = null; v_da = null; GC.Collect(); } }