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-1403, Jelsoft Enterprises Ltd.