PDA

View Full Version : تبدیل نوع دیتا تایپ (تبدیل دیتا تایپ های سیستمی وی بی به دیتا تایپ های بانک اطلاعاتی)



arman_Delta2002
جمعه 28 مرداد 1390, 20:36 عصر
سلام
میخواستم دیتا تایپ های یک پارامتر از کامند رو به دیتا تایپ نوع اکسز یا اس کیو ال تبدیل کنم چطور میشه این کار رو کرد؟

Dim Command1 As New OleDb.OleDbCommand
Dim Command2 As New OleDb.OleDbCommand
Dim con As New OleDb.OleDbConnection
Dim dt As New DataTable
Dim ds As New DataSet
Dim Da As New OleDb.OleDbDataAdapter
Dim conData As New OleDb.OleDbType
Private Sub SQLParametrFinder(ByVal SQLText As String, ByVal DataComand As OleDb.OleDbCommand)
Command2.CommandText = "SELECT top 1 * FROM D_Company"
Command2.Connection = con
Command1.Connection = con
Command1.CommandText = TextBox1.Text
Da.SelectCommand = Command2

Da.Fill(ds, "DaftarMali")
Dim I As Integer
For I = 0 To ds.Tables(0).Columns.Count - 1
ListBox1.Items.Add(ds.Tables(0).Columns(I).ColumnN ame)
ListBox2.Items.Add(ds.Tables(0).Columns(I).DataTyp e.ToString)

Command1.Parameters.Add(New OleDb.OleDbParameter("@" & ds.Tables(0).Columns(I).ColumnName, ds.Tables(0).Columns(I).DataType))
ListBox3.Items.Add(Command1.Parameters.Item(I).DbT ype)
Next
Da.InsertCommand = Command1

End Sub

در کد بالا یک سری پارامتر اضافه میشه به کامند از انواع مختلف به عنوان مثال یک فیلد به اسم F1 از نوع رشته ای اضافه میشه به لیست باکس ولی وقتی مخوام یک نوع رشته ای اضافه بشه به پارامتر نمیشه این کار رو کرد به دلیل این که فیلد رشته ای اضافه شده از نوع System.String میشه ولی فیلد های بانک اطلاعاتی از نوع VarWChar میشناسه حالا چطور بدون استفاده از Select case این تبدیل انجام میشه؟:متعجب:

arman_Delta2002
جمعه 28 مرداد 1390, 21:40 عصر
اینم جواب

Public Shared Function TypeToDbType1(ByVal t As Type) As DbType
Dim dbt As DbType
Try
dbt = CType(System.Enum.Parse(GetType(DbType), t.Name), DbType)
Catch
dbt = DbType.Object
End Try
Return dbt
End Function