Imports System Imports System.Data Imports System.Data.OleDb Imports Microsoft.VisualBasic Imports System.Console Imports System.Windows.Forms Imports System.IO Imports System.Text Imports System.Drawing Namespace BogartMis.Cls Public Class DataControl #Region "SQL Process <Added by: langwang at: 2008/12/5-上午 09:46:57 on machine: WXPGNR530> " Public Function GetDataTable(ByVal strSQL As String, ByVal aConn As SqlClient.SqlConnection) As DataTable Dim netTable As DataTable Try OpenConn(aConn) Dim netDp As SqlClient.SqlDataAdapter netTable = New DataTable netDp = New SqlClient.SqlDataAdapter(strSQL, aConn) netDp.Fill(netTable) netDp.Dispose() Catch ex As Exception System.Console.WriteLine(ex.ToString) End Try Return netTable End Function Public Function ExecuteCommand(ByVal strSQL As String, ByVal aConn As SqlClient.SqlConnection) As Boolean Dim cmd As New SqlClient.SqlCommand Dim i As Integer Try OpenConn(aConn) With cmd .Connection = aConn .CommandText = strSQL .CommandType = CommandType.Text .CommandTimeout = 60 i = .ExecuteNonQuery() End With Catch ex As Exception i = -1 End Try If i >= 0 Then Return True Else Return False End If End Function Public Function ExecuteCommand(ByVal strSQL As String, ByRef objPar As String, ByRef objValues() As Object, ByVal sqlConn As SqlClient.SqlConnection) As Boolean Dim cmd As New SqlClient.SqlCommand Dim i As Integer Dim par As SqlClient.SqlParameter Dim objPars() As String = objPar.Split(",") OpenConn(sqlConn) Try With cmd .Connection = sqlConn .CommandText = strSQL .CommandType = CommandType.StoredProcedure .CommandTimeout = 60 For i = 0 To objPars.Length - 1 par = New SqlClient.SqlParameter(objPars(i), objValues(i)) .Parameters.Add(par) Next i = .ExecuteNonQuery() End With Catch ex As Exception i = -1 End Try If i >= 0 Then Return True Else Return False End If End Function Public Function SelectValue(ByVal strSQL As String, ByVal aConn As SqlClient.SqlConnection, Optional ByVal DefaultValue As Object = Nothing) As Object Dim cmd As SqlClient.SqlCommand Dim o As Object = Nothing Try OpenConn(aConn) cmd = New SqlClient.SqlCommand With cmd .Connection = aConn .CommandText = strSQL .CommandType = CommandType.Text .CommandTimeout = 60 o = .ExecuteScalar() End With Catch ex As Exception o = Nothing Finally cmd.Dispose() End Try If o Is Nothing Then Return DefaultValue Else Return o End If End Function #End Region #Region " Ole Process" Public Sub SetVesselControl(ByVal netView As DataView, ByVal VesselName As Control) Try Dim e As Control Dim eCbo As ComboBox Dim eDtp As DateTimePicker Dim eCHK As CheckBox Dim ePic As PictureBox Dim eNud As NumericUpDown For Each e In VesselName.Controls If TypeOf e Is TextBox Then If Microsoft.VisualBasic.Left(e.Name, 3).ToLower <> "txt" Then e.Text = netView.Table.Rows(0)(e.Name) End If ElseIf TypeOf e Is ComboBox Then If Microsoft.VisualBasic.Left(e.Name, 3).ToLower <> "cbo" Then eCbo = CType(e, ComboBox) If eCbo.DataSource Is Nothing Then eCbo.SelectedItem = netView.Table.Rows(0)(e.Name) Else eCbo.SelectedValue = netView.Table.Rows(0)(e.Name) End If End If ElseIf TypeOf e Is DateTimePicker Then If Microsoft.VisualBasic.Left(e.Name, 3).ToLower <> "dtp" Then eDtp = CType(e, DateTimePicker) eDtp.Value = netView.Table.Rows(0)(e.Name) End If ElseIf TypeOf e Is NumericUpDown Then If Microsoft.VisualBasic.Left(e.Name, 3).ToLower <> "nud" Then eNud = CType(e, NumericUpDown) eNud.Value = netView.Table.Rows(0)(e.Name) End If ElseIf TypeOf e Is CheckBox Then If Microsoft.VisualBasic.Left(e.Name, 3).ToLower <> "chk" Then eCHK = CType(e, CheckBox) eCHK.Checked = CBool(netView.Table.Rows(0)(e.Name)) End If ElseIf TypeOf e Is PictureBox Then If Microsoft.VisualBasic.Left(e.Name, 3).ToLower <> "pic" Then ePic = CType(e, PictureBox) Dim By() As Byte = CType(netView.Table.Rows(0)(e.Name), Byte()) Dim ms As New MemoryStream(By) ePic.Image = Image.FromStream(ms, True) ms.Close() End If End If Next Catch ex As Exception System.Console.WriteLine(ex.ToString) End Try End Sub Public Sub ClearVessel(ByVal VesselName As Control) Try Dim e As Control Dim eCbo As ComboBox Dim eDTP As DateTimePicker Dim eCHK As CheckBox Dim ePic As PictureBox For Each e In VesselName.Controls If TypeOf e Is TextBox Then e.Text = "" ElseIf TypeOf e Is ComboBox Then eCbo = CType(e, ComboBox) eCbo.Text = "" ElseIf TypeOf e Is DateTimePicker Then eDTP = CType(e, DateTimePicker) eDTP.Value = DateTime.Today ElseIf TypeOf e Is CheckBox Then eCHK = CType(e, CheckBox) eCHK.Checked = False ElseIf TypeOf e Is PictureBox Then ePic = CType(e, PictureBox) ePic.Image = Nothing End If Next Catch ex As Exception End Try End Sub Public Function AddRow(ByVal netView As DataView, ByVal VesselName As Control) As Boolean Try Dim e As Control Dim eTxt As TextBox Dim eChk As CheckBox Dim eCbo As ComboBox Dim ePic As PictureBox Dim eDTP As DateTimePicker Dim eNud As NumericUpDown Dim netRow As DataRowView = netView.AddNew netRow.BeginEdit() For Each e In VesselName.Controls If TypeOf e Is TextBox Then If Microsoft.VisualBasic.Left(e.Name, 3).ToLower <> "txt" Then netRow(e.Name) = e.Text End If ElseIf TypeOf e Is ComboBox Then If Microsoft.VisualBasic.Left(e.Name, 3).ToLower <> "cbo" Then eCbo = CType(e, ComboBox) If eCbo.DataSource Is Nothing Then netRow(e.Name) = eCbo.GetItemText(eCbo.SelectedItem) Else netRow(e.Name) = eCbo.GetItemText(eCbo.SelectedValue) End If End If ElseIf TypeOf e Is NumericUpDown Then If Microsoft.VisualBasic.Left(e.Name, 3).ToLower <> "nud" Then eNud = CType(e, NumericUpDown) netRow(e.Name) = eNud.Value End If ElseIf TypeOf e Is CheckBox Then If Microsoft.VisualBasic.Left(e.Name, 3).ToLower <> "chk" Then eChk = CType(e, CheckBox) netRow(e.Name) = -CInt(eChk.Checked) End If ElseIf TypeOf e Is DateTimePicker Then If Microsoft.VisualBasic.Left(e.Name, 3).ToLower <> "dtp" Then eDTP = CType(e, DateTimePicker) netRow(e.Name) = eDTP.Value End If ElseIf TypeOf e Is PictureBox Then Try If Microsoft.VisualBasic.Left(e.Name.ToLower, 3).ToString <> "pic" Then ePic = CType(e, PictureBox) If ePic.Image Is Nothing Then Else Dim ms As New MemoryStream ePic.Image.Save(ms, ePic.Image.RawFormat) Dim by() As Byte = ms.GetBuffer ms.Close() netRow(e.Name) = by End If End If Catch End Try End If Next netRow.EndEdit() Return True Catch em As Exception Return False End Try End Function Public Function UpdateRow(ByVal netView As DataView, ByVal pkField As String, ByVal VesselName As Control) As Boolean Try Dim e As Control Dim eTxt As TextBox Dim eChk As CheckBox Dim eCbo As ComboBox Dim ePic As PictureBox Dim eDTP As DateTimePicker Dim eNud As NumericUpDown Dim netRow As DataRowView = netView.Item(0) netRow.BeginEdit() For Each e In VesselName.Controls If e.Name.ToLower <> pkField.ToLower Then If TypeOf e Is TextBox Then If Microsoft.VisualBasic.Left(e.Name, 3).ToLower <> "txt" Then netRow(e.Name) = e.Text End If ElseIf TypeOf e Is ComboBox Then If Microsoft.VisualBasic.Left(e.Name, 3).ToLower <> "cbo" Then eCbo = CType(e, ComboBox) If eCbo.DataSource Is Nothing Then netRow(e.Name) = eCbo.GetItemText(eCbo.SelectedItem) Else netRow(e.Name) = eCbo.GetItemText(eCbo.SelectedValue) End If End If ElseIf TypeOf e Is CheckBox Then If Microsoft.VisualBasic.Left(e.Name, 3).ToLower <> "chk" Then eChk = CType(e, CheckBox) netRow(e.Name) = -CInt(eChk.Checked) End If ElseIf TypeOf e Is NumericUpDown Then If Microsoft.VisualBasic.Left(e.Name, 3).ToLower <> "nud" Then eNud = CType(e, NumericUpDown) netRow(e.Name) = eNud.Value End If ElseIf TypeOf e Is DateTimePicker Then If Microsoft.VisualBasic.Left(e.Name, 3).ToLower <> "dtp" Then eDTP = CType(e, DateTimePicker) netRow(e.Name) = eDTP.Value End If ElseIf TypeOf e Is PictureBox Then Try If Microsoft.VisualBasic.Left(e.Name.ToLower, 3).ToString <> "pic" Then ePic = CType(e, PictureBox) If ePic.Image Is Nothing Then Else Dim ms As MemoryStream ePic.Image.Save(ms, ePic.Image.RawFormat) Dim by() As Byte = ms.GetBuffer ms.Close() netRow(e.Name) = by End If End If Catch End Try End If End If Next netRow.EndEdit() Return True Catch em As Exception Return False End Try End Function 'Added by SimonCheung on 2009/08/28 獲取公司Logo Public Function GetCompanyLogo(ByVal aConn As OleDb.OleDbConnection) As OleDb.OleDbDataAdapter Dim netLogo As OleDb.OleDbDataAdapter If g.gDefaultCompany = "03" Then netLogo = New OleDb.OleDbDataAdapter("select CompanyLogo as CMPYLOGO from CompanyProfile where CompanyCode='SHS'", aConn) Else If g.gDefaultCompany = "04" Then netLogo = New OleDb.OleDbDataAdapter("select CompanyLogo as CMPYLOGO from CompanyProfile where CompanyCode='Brunet'", aConn) Else netLogo = New OleDb.OleDbDataAdapter("select CompanyLogo as CMPYLOGO from CompanyProfile where CompanyCode='Bogart'", aConn) End If End If netLogo.SelectCommand.CommandTimeout = 300 Return netLogo End Function 'Added by SimonCheung on 2009/10/08 獲取公司Logo Public Function GetCompanyLogo(ByVal aConn As OleDb.OleDbConnection, ByVal sCompany_Code As String, ByVal sCompany_Name As String) As OleDb.OleDbDataAdapter Dim netLogo As OleDb.OleDbDataAdapter If g.gDefaultCompany = "03" Then If sCompany_Name.Trim.Length > 0 Then netLogo = New OleDb.OleDbDataAdapter("select CompanyLogo as CMPYLOGO from CompanyProfile where CompanyCode='" & sCompany_Name & "'", aConn) Else netLogo = New OleDb.OleDbDataAdapter("select CompanyLogo as CMPYLOGO from CompanyProfile where IntRefCode='" & sCompany_Code & "'", aConn) ' netLogo = New OleDb.OleDbDataAdapter("select CompanyLogo as CMPYLOGO from CompanyProfile where CompanyCode='" & IIf(sCompany_Code.Trim = "02", "BLingerie", "SHS") & "'", aConn) End If Else If sCompany_Name.Trim.Length > 0 Then netLogo = New OleDb.OleDbDataAdapter("select CompanyLogo as CMPYLOGO from CompanyProfile where CompanyCode='" & sCompany_Name & "'", aConn) Else netLogo = New OleDb.OleDbDataAdapter("select CompanyLogo as CMPYLOGO from CompanyProfile where IntRefCode='" & sCompany_Code & "'", aConn) ' netLogo = New OleDb.OleDbDataAdapter("select CompanyLogo as CMPYLOGO from CompanyProfile where CompanyCode='" & IIf(sCompany_Code.Trim = "02", "BLingerie", "Bogart") & "'", aConn) End If End If netLogo.SelectCommand.CommandTimeout = 300 Return netLogo End Function 'Added by Judy on 2010/12/07 Public Function getCompanyImage(ByVal CompanyCode As String) As Boolean Try Dim rs As New ADODB.Recordset 'Dim connok As Boolean = True 'If sqlConn_temp.State <> ConnectionState.Open Then ' If Me.connSQL = False Then ' connok = False ' End If 'End If 'If connok = True Then rs.Open("select CompanyLogo from RPTDEV.dbo.CompanyProfile where CompanyCode='" & CompanyCode.Trim.ToString & "' ", sqlAdo, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockBatchOptimistic) 'End If If rs.RecordCount <= 0 Then Exit Function rs.MoveFirst() Dim by() As Byte = CType(rs.Fields("CompanyLogo").Value, Byte()) If by Is Nothing Then Exit Function Dim myMem As New IO.MemoryStream(by) Dim myBmp As New Bitmap(myMem) Clipboard.SetDataObject(myBmp) Return True Catch ex As Exception System.Console.WriteLine(ex.ToString) Return False End Try End Function 'Added by vinson on 2012/12/25 Public Function getCompanyAdditionalLogo(ByVal aConn As OleDb.OleDbConnection, ByVal sCompany_Code As String, ByVal sCompany_Name As String) As OleDb.OleDbDataAdapter Dim netLogo As OleDb.OleDbDataAdapter 'sCompany_Name = "Brunet" netLogo = New OleDb.OleDbDataAdapter("select AdditionalLogo from CompanyProfile where CompanyCode='" & sCompany_Name & "'", aConn) netLogo.SelectCommand.CommandTimeout = 300 Return netLogo End Function ''Added by Judy to 2010/12/10 'Public Function InsertCmpLogo(ByVal code As String, ByVal xSheet As Excel.Worksheet, ByVal xBook As Excel.Workbook, ByVal xApp As Excel.Application) As Boolean ' Dim intHH As Int16 ' With xSheet.Range("I1") ' intHH = .Rows.Height() - 1 ' End With ' If gData.getCompanyImage(g.CmpCode) = True Then ' xSheet.Range("I1").Select() ' xSheet.Paste() ' xApp.Selection.ShapeRange.LockAspectRatio = True ' xApp.Selection.ShapeRange.Height = intHH '按高填充 ' End If ' 'End If ' System.Windows.Forms.Clipboard.SetDataObject("") 'End Function ''Added by Judy to 2010/12/07 'Public Function connSQL() As Boolean ' Try ' sqlConn_temp.ConnectionString = "Provider=SQLOLEDB.1;data source=" & g.gSqlServer & ";initial catalog='" & g.gServerUser & "';password='" & g.gServerPassWord & "';user id='" & g.gSqlServerUser & "'" ' sqlConn_temp.CursorLocation = ADODB.CursorLocationEnum.adUseClient ' sqlConn_temp.Open() ' Return True ' Catch ex As Exception ' Return False ' End Try 'End Function 'Added by simoncheung on 2010/04/22 根據Company Code 取得companyName Public Function GetCompanyName(ByVal C_Code As String) As String Dim ComanyName As String = gData.SelectValue(" select CompanyCode FROM dbo.CompanyProfile WHERE IntRefCode='" & Trim(C_Code) & "'", sqlAdo) If ComanyName.Trim.Length > 0 Then Return ComanyName Else Return " " End If End Function Public Function GetDataSet(ByVal SQL As String, ByVal aConn As OleDb.OleDbConnection, Optional ByVal TableName As String = Nothing) As DataSet Try Dim netDp As OleDb.OleDbDataAdapter Dim netDs As New DataSet netDp = New OleDb.OleDbDataAdapter(SQL, aConn) If TableName = Nothing Then netDp.Fill(netDs) Else netDp.Fill(netDs, TableName) End If netDp.Dispose() Return netDs Catch ex As Exception System.Console.WriteLine(ex.ToString) End Try End Function Public Function GetDataView(ByVal SQL As String, ByVal aConn As OleDb.OleDbConnection, Optional ByVal TableName As String = Nothing) As DataView Dim netDp As OleDb.OleDbDataAdapter Dim netDs As New DataSet Try netDp = New OleDb.OleDbDataAdapter(SQL, aConn) If TableName = Nothing Then netDp.Fill(netDs) Else netDp.Fill(netDs, TableName) End If netDp.Dispose() Return netDs.Tables(0).DefaultView Catch ex As Exception System.Console.WriteLine(ex.ToString) End Try End Function Public Function GetDataTable(ByVal SQL As String, ByVal aConn As OleDb.OleDbConnection, Optional ByVal TableName As String = Nothing) As DataTable Try Dim netDp As OleDb.OleDbDataAdapter Dim netTable As DataTable If TableName = Nothing Then netTable = New DataTable Else netTable = New DataTable(TableName) End If netDp = New OleDb.OleDbDataAdapter(SQL, aConn) netDp.Fill(netTable) netDp.Dispose() Return netTable Catch ex As Exception System.Console.WriteLine(ex.ToString) If g.gUserId.ToUpper = "SHINYD" Then MsgBox(SQL & " " & ex.ToString) End If End Try End Function Protected Overrides Sub Finalize() ' If Not impersonationContext Is Nothing Then impersonationContext.Undo() MyBase.Finalize() End Sub '檢查給定的條件記錄是否存在 Public Function CheckRecord(ByVal strSQL As String, ByVal aConn As ADODB.Connection) As Boolean Try Dim rs As New ADODB.Recordset rs.Open(strSQL, aConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic) If rs.RecordCount > 0 Then Return True Else Return False End If Catch ex As Exception Return False End Try End Function '返回給定條件的表第一行第一列的數據 Public Function selectValue(ByVal strSQL As String, ByVal aConn As ADODB.Connection, Optional ByVal DefaultValue As Object = "") As Object Try Dim rs As New ADODB.Recordset rs.Open(strSQL, aConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic) If rs.RecordCount > 0 Then Return Trim(IIf(IsDBNull(rs.Fields(0).Value) = True, DefaultValue, rs.Fields(0).Value)) Else Return DefaultValue End If Catch ex As Exception Dim f As New IO.FileStream("errorlog.txt", IO.FileMode.OpenOrCreate) f.Flush() Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes(ex.ToString) Dim i As Integer For i = 0 To data.GetUpperBound(0) f.WriteByte(data(i)) Next f.Close() Return DefaultValue End Try End Function ' <Added by: langwang at: 2008/12/5-上午 09:46:57 on machine: WXPGNR530> Public Function SelectValue(ByVal strSQL As String, ByVal aConn As OleDb.OleDbConnection, Optional ByVal DefaultValue As Object = "") As String Try OpenConn(aConn) Dim cmd As New OleDb.OleDbCommand(strSQL, aConn) Dim ret As Object = cmd.ExecuteScalar() If ret Is Nothing Then Return DefaultValue Else Return CStr(ret) End If Catch ex As Exception Return DefaultValue End Try End Function '================================== 'Add by shiny 2009/04/06 函數 FilterSql '過濾Sql關鍵符號 '================================= Public Function FilterSql(ByVal StrF As Object) As String Try If IsDBNull(StrF) Then Return "" End If Return Strings.Replace(StrF, "'", "''") Catch ex As Exception Return StrF End Try End Function Public Function selectValues(ByVal strSQL As String, ByVal aConn As OleDb.OleDbConnection, Optional ByVal DefaultValue As String = "") As String Try Dim netTable As DataTable = GetDataTable(strSQL, aConn) If netTable.Rows.Count > 0 Then Return Trim(IIf(IsDBNull(netTable.Rows(0).Item(0)) = True, DefaultValue, netTable.Rows(0).Item(0))) Else Return DefaultValue End If Catch ex As Exception Return DefaultValue Exit Function End Try End Function Public Function getClotType(ByVal CLOT As String) As String Dim CLOTTD As String = gData.SelectValue(" select VALUE(B.CLOTTD, '') as CLOTTD FROM IMFCLOT A LEFT JOIN IMFCLTT B ON A.SEWFTY = B.CLOTTP WHERE A.CLOT='" & Trim(CLOT) & "'", adoConn) If CLOTTD.Trim.Length > 0 Then Return CLOTTD Else Return " " End If End Function 'Added by Simon Cheung on 2010/09/17 Job# 1000342 Public Function getCustPO(ByVal LOTNO As String) As String Dim I As Integer Dim TmpTab As DataTable = gData.GetDataTable("SELECT REMLIN, REMARK FROM ORFORDR WHERE CSTORD='" & LOTNO & "' AND REMTYP = '1' ORDER BY REMLIN ", netConn) For I = 0 To TmpTab.Rows.Count - 1 getCustPO = getCustPO & TmpTab.Rows(I).Item("REMARK") Next Return getCustPO End Function Public Function GetPrintTime() As String '1 Hour 2 year 3 minute 4 month 5 second 6 date Dim strPrintTime As String = Format(Now(), "HHyymmMMssdd") Return strPrintTime End Function Public Function getProductImage(ByVal ProductCode As String, ByVal IMGTYP As String, ByVal s As Integer, ByVal w As Integer) As Boolean Try If Not System.IO.Directory.Exists("C:\TEMP\") Then System.IO.Directory.CreateDirectory("C:\TEMP\") End If Dim LogoFileName As String = "C:\TEMP\TmpProduct.jpg" Dim TmpLogo As Bitmap = ChangeImageSize(getProductImage(ProductCode, IMGTYP, sqlAdo), s, w) TmpLogo.Save(LogoFileName) Return True Catch ex As Exception Return False End Try End Function Public Function getProductImage(ByVal ProductCode As String, ByVal IMGTYP As String, ByVal sqlAdo As ADODB.Connection) As Byte() Dim by() As Byte Dim rsImage As New ADODB.Recordset 'last version product,add by vinson on 2013-03-01 rsImage.Open("select image from ProdSketch.dbo.orximg where imgtyp='" + IMGTYP + "' and deg=(select max(deg) from ProdSketch.dbo.orximg where imgtyp='" + IMGTYP + "' and deg like '" + Mid(ProductCode, 1, 6) + "%') and seqno=(select min(seqno) from ProdSketch.dbo.orximg where imgtyp='" + IMGTYP + "' and deg=(select max(deg) from ProdSketch.dbo.orximg where imgtyp='" + IMGTYP + "' and deg like '" + Mid(ProductCode, 1, 6) + "%'))", sqlAdo) If rsImage.RecordCount > 0 Then by = CType(rsImage.Fields("image").Value, Byte()) Else by = Nothing End If rsImage.Close() Return by End Function Public Function ChangeImageSize(ByVal byF As Byte(), Optional ByVal x_W As Int16 = 150, Optional ByVal x_H As Int16 = 150) As System.Drawing.Bitmap Try Dim ms As New IO.MemoryStream(byF) Dim imgT As New PictureBox imgT.SizeMode = PictureBoxSizeMode.AutoSize imgT.Image = Image.FromStream(ms) Dim bmp As New System.Drawing.Bitmap(x_W, x_H) Dim grp As Graphics = Graphics.FromImage(bmp) Dim blueBrush As New SolidBrush(Color.White) grp.FillRectangle(blueBrush, 0, 0, x_W, x_H) Dim intW As Single Dim intH As Single If imgT.Width > x_W Then intW = x_W intH = imgT.Height * (x_W / imgT.Width) Else intW = imgT.Width intH = imgT.Height End If If intH > x_H Then intH = x_H intW = imgT.Width * (x_H / imgT.Height) End If grp.DrawImage(imgT.Image, (x_W - intW) / 2, (x_H - intH) / 2, intW, intH) Return bmp Catch ex As Exception Return Nothing End Try End Function Public Function changePicSize(ByVal by() As Byte, Optional ByVal x_W As Int16 = 150, Optional ByVal x_H As Int16 = 150) As Byte() Try ChangeImageSize(by, x_W, x_H).Save(Application.StartupPath & "\product.jpg") Dim fs As New IO.FileStream(Application.StartupPath & "\product.jpg", IO.FileMode.OpenOrCreate) Dim by2(fs.Length) As Byte fs.Read(by2, 0, fs.Length) fs.Close() Return by2 Catch ex As Exception Return Nothing End Try End Function Public Function changePicSize2(ByVal by() As Byte, Optional ByVal x_W As Int16 = 150, Optional ByVal x_H As Int16 = 150) As Byte() Try Dim ms2 As New IO.MemoryStream ChangeImageSize(by, x_W, x_H).Save(ms2, System.Drawing.Imaging.ImageFormat.Jpeg) Dim by2() As Byte = ms2.GetBuffer ms2.Close() Return by2 Catch ex As Exception Return Nothing End Try End Function #End Region End Class End Namespace