PDA

View Full Version : گفتگو: راه ورود اطلاعات برای همه اعضای یک بانک



toopak
سه شنبه 27 مرداد 1388, 23:32 عصر
سلام،با عرض خسته نباشید
من میخوام لیست افراد تو یک جدول رو بگیرم و برای همه اونا مثلا مقدار حقوق رو وارد کنم و بعد هم تو بانک ذخیره کنم
از چه راهی استفاده کنم
من خودم تو فکرم دیتا گرید هست
یعنی تو ستون اول نام افراد رو نمایش بده و تو تطون دوم فیلد خالی باشه که حقوق وارد بشه
اما نمیدونم چطوری باید پیاده سازیش کنم
حالا شما هم اگر راه دیگه ای تو فکرتون هست ممنون میشم کمک کنید:بوس:

Hossis
چهارشنبه 28 مرداد 1388, 02:24 صبح
حقوقش چقدری هست ؟
اگه قابل به عرضه اسم ما رو هم وارد کن!!
اما من فکر کنم نیازی به این نیست که نام همه را از جدول بگیرید مگر این که حقوق ها با هم اختلاف داشته و برای هر کس بخواهید مقدار جداگانه وارد کنید.
به نظر من از یک حلقه For استفاده کن با استفاده از کانکشن استرینگ


Dim db As new adodb.connection
Dim Rs As New Adodb.recordset
rs.Open("[Table]", db, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)
rs.MoveFirst()
For I = 0 To rs.RecordCount
If Not rs.EOF Then
rs.fields("Hoquq").value="4500000"
End If
If Not rs.EOF Then rs.MoveNext()
Next
rs.Close()

toopak
چهارشنبه 28 مرداد 1388, 11:32 صبح
راستش هر کس بر اساس کاری که کرده حقوق میگیره
این یعنی برای هر اسم باید مقدار جداگانه وارد بشه
حالا یه پیشنهاد بدید:لبخند:

راستی شما هم هرچی بیشتر زحمت بکشی حقوق بیشتری میگیری:لبخند:

Hossis
چهارشنبه 28 مرداد 1388, 12:30 عصر
همین روش چطوره
تفاوتی که باید بدیم اینه که یک شرط بذاریم!



Dim db As new adodb.connection
Dim Rs As New Adodb.recordset
rs.Open("[Table]", db, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)
rs.MoveFirst()
For I = 0 To rs.RecordCount
If Not rs.EOF Then
' شرط بر اساس نام
if rs.fields("Name").value ="Hossis" then _
rs.fields("Hoquq").value="4500000"
' یا شرط بر اساس زحمت کشیدن
if rs.fields("Action").value ="300" then ' 300 ساعت کار کرده
rs.fields("Hoquq").value="4500000"
end if

End If
If Not rs.EOF Then rs.MoveNext()
Next
rs.Close()
[/quote]

toopak
چهارشنبه 28 مرداد 1388, 13:02 عصر
نه عزیز
اصلا هیچ قائده ای نداره که بشه براش شرط یا چیز دیگه ای گذاشت
فقط باید به صورت دستی وارد بشه.

BehzadBar
چهارشنبه 28 مرداد 1388, 13:13 عصر
سلام به نظر من هم همون دیتا گرید کم خرج ترین کاره ولی اگه باهاش حال نمیکنی از Data Reader استفاده کد بعد تو حلقه While هی یه اسمو بخونه بعد مقدار حقوق را وارد کن و بعدی و بعدی که البته من فکر میکنم اینطوری هم زحمتش بیشتره هم Safe تره هم شیک تره

Hossis
چهارشنبه 28 مرداد 1388, 13:31 عصر
سلام به نظر من هم همون دیتا گرید کم خرج ترین کاره ولی اگه باهاش حال نمیکنی از Data Reader استفاده کد بعد تو حلقه While هی یه اسمو بخونه بعد مقدار حقوق را وارد کن و بعدی و بعدی که البته من فکر میکنم اینطوری هم زحمتش بیشتره هم Safe تره هم شیک تره

می‌شه یک قطعه کد بذاری به عنوان نمونه؟؟؟

BehzadBar
چهارشنبه 28 مرداد 1388, 15:33 عصر
اینم یه تیکه کد محض نمونه فقط برای شفاف سازی


Private Sub AddSallary(ByVal EmployeeID As Integer, ByVal Sallary As Integer)
Dim cmd As New SqlCommand("Update Employee Set Sallary =" & Sallary & "WHERE EmployeeID =" & EmployeeID, cn)
cn.open()
cmd.ExecuteNonQuery()
cn.close()
End Sub
Private Sub RetriveEmployee()
Dim cmd As New SqlCommand("SELECT EmployeeID,EmployeeName,Sallary FROM Employee", cn)
Dim dr As SqlDataReader
cn.open()
dr = cmd.ExecuteReader
Do While dr.Read
Me.txtEmployeeName.text = dr(1)
If Not DBNull.Value.Equals(dr(3)) Then
Me.txtSallary.text = dr(3)
Else
Me.txtSallary.text = "Not Assigned"
End If
'For Example you can get values from every Where you want like a form or another control
'But you Should have the technique to puase program here for entering data
Dim Sallary As Integer
Sallary = InputBox("Please Enter The Sallary")
AddSallary(dr(0), Sallary)
Loop
dr.Close()
cn.close()
End Sub

البته این کد مطمئنا کار نمیکنه چون DataReader از کانکشن باز ایراد میگیره ولی مسیر پیشنهادی من همینه که اگه یه کم بهش ور برید کار میکنه

toopak
پنج شنبه 29 مرداد 1388, 01:38 صبح
خب اینطوری به نظر من خسته کننده میاد
اگر همه لیست باشن و با یک tab بشه اطلاعات رو وارد کرد خیلی عامیانه تر میشه