Omid.R.A.Candy
چهارشنبه 10 مهر 1392, 22:34 عصر
سلام
دوتا مشکل عجیب و غریب در استفاده از ترد پیدا کردم یکی در مورد پر کردن  دیتاگرید ویو و دیگری در رابطه با تغییر خصوصیات یک دکمه.البته از کد زیر  هم استفاده کردم ولی جواب نداده!
CheckForIllegalCrossThreadCalls = False
البته از متدهای میوتکس و مانیتور اینها هم استفاده کردم ولی جواب نگرفتم!
برای گرید ویو:
111412
برای دکمه:
111413http://barnamenevis.org/images/misc/pencil.png
محسن شامحمدی
پنج شنبه 11 مهر 1392, 10:24 صبح
کدی که استفاده کردید؟
Omid.R.A.Candy
پنج شنبه 11 مهر 1392, 12:18 عصر
کدی که استفاده کردید؟
 
سلام 
نمونه برنامه اینه- حجمش 3mb هست و از 11 بخش تشکیل یافته:
قسمت 1:
111431
111433
111434
111435
111436
Omid.R.A.Candy
پنج شنبه 11 مهر 1392, 12:23 عصر
قسمت 2 :
111437
111438
111439
111440
111441
111442
Omid.R.A.Candy
جمعه 12 مهر 1392, 14:49 عصر
سلام دوباره این هم کدهای مورد استفادم:
Imports System.Data.OleDb
Public Class Form1
    Dim Number_of_Rows_on_DataBase As Integer
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        DataGridView1.DataSource = Load_DataBase_For_Access_Type_1(Application.Startu pPath & "\Deutsch-Englisch.accdb", "Table1")
        Number_of_Rows_on_DataBase = Load_DataBase_For_Access_Type_1(Application.Startu pPath & "\Deutsch-Englisch.accdb", "Table1").Rows.Count
    End Sub
    '................................................. ...............
    Public Sub Work1()
        'but we can use Try and Cash to Slove this Problem.But as you know this is not the best way!.
        RadButton1.Enabled = True
    End Sub
    Private Sub RadButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadButton1.Click
        '--------------------------------------------------
        RadButton1.Enabled = False
        '-------------------------------------------------------------
        Dim T1 As System.Threading.Thread
        CheckForIllegalCrossThreadCalls = False
        T1 = New System.Threading.Thread(AddressOf Work1)
        T1.IsBackground = True
        T1.Start()
        '-------------------------------------------------------------
    End Sub
    '................................................. ...............
    Public Function cnnString_DataSource_For_Access(ByVal Data_Source_Adress_For_Access As String) As String
        cnnString_DataSource_For_Access = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Data_Source_Adress_For_Access
    End Function
    Public Function Load_DataBase_For_Access_Type_1(ByVal Data_Source_Adress_For_Access As String, ByVal Table_Name_For_Access As String) As DataTable
        Dim Adapter_For_Access As OleDbDataAdapter
        Dim DataTable_For_Access As New DataTable
        Adapter_For_Access = New OleDb.OleDbDataAdapter("select * from " & Table_Name_For_Access, cnnString_DataSource_For_Access(Data_Source_Adress _For_Access))
        Adapter_For_Access.Fill(DataTable_For_Access)
        Load_DataBase_For_Access_Type_1 = DataTable_For_Access
    End Function
    Sub data_save_on_data_bace_Access(ByVal deutsch_word As String, ByVal englisch_word As String)
        '-------------------------------------------
        Dim cnn As New OleDb.OleDbConnection(cnnString_DataSource_For_Acc ess(Application.StartupPath & "\Deutsch-Englisch.accdb"))
        '-------------------------------------------
        Dim Access As String
        Access = "insert into Table1 (ID,deutsch,englisch,wav) values (@ID,@deutsch,@englisch,@wav)"
        '-------------------------------------------
        Dim cmd As New OleDbCommand
        '-------------------------------------------
        cnn.Open()
        '-------------------------------------------
        cmd.Parameters.Clear()
        cmd.CommandText = Access
        cmd.Connection = cnn
        cmd.Parameters.Clear()
        '-------------------------------------------
        cmd.Parameters.AddWithValue("ID", Number_of_Rows_on_DataBase + 1)
        cmd.Parameters.AddWithValue("deutsch", deutsch_word)
        cmd.Parameters.AddWithValue("englisch", englisch_word)
        cmd.Parameters.AddWithValue("wav", 0)
        '-------------------------------------------
        cmd.ExecuteNonQuery()
        cnn.Close()
        '-------------------------------------------
        Number_of_Rows_on_DataBase = Number_of_Rows_on_DataBase + 1
    End Sub
    Public Sub Work2()
        For i = 1 To 100
            data_save_on_data_bace_Access("Ich Bin", "OMID R.A.Candy")
            'Problem is Here:DataGridview can't show data base loding!!!! whayyyyy?
            DataGridView1.DataSource = Load_DataBase_For_Access_Type_1(Application.Startu pPath & "\Deutsch-Englisch.accdb", "Table1")
        Next i
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        '-------------------------------------------------------------
        Dim T2 As System.Threading.Thread
        CheckForIllegalCrossThreadCalls = False
        T2 = New System.Threading.Thread(AddressOf Work2)
        T2.IsBackground = True
        T2.Start()
        '-------------------------------------------------------------
    End Sub
    '................................................. ...............
   
End Class
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.