PDA

View Full Version : نحوه شرط گذاری if ,... روی مقدار فیلد sql



clupcd
پنج شنبه 02 آذر 1391, 09:16 صبح
با سلام چطور میشه روی یک رکورد یا فیلد خواصی شرط گذاشت
دستورش رو قرار بدین و مثال بزنین
مثلا ااگر رکورد پرداخت=0 آنگاه form2.radiobuton2.checked=true
else form2.radiobuton1.check=true
توی این مایه ها

JaVa
پنج شنبه 02 آذر 1391, 09:32 صبح
با سلام چطور میشه روی یک رکورد یا فیلد خواصی شرط گذاشت
دستورش رو قرار بدین و مثال بزنین
مثلا ااگر رکورد پرداخت=0 آنگاه form2.radiobuton2.checked=true
else form2.radiobuton1.check=true
توی این مایه ها

من معمولا این کا رو انجام می دم که رکورد مورد نظر میارم توی دیتا گراید و اون مقداری که می خوام رو از سلول دیتا گرید بیرون می کشم بعش با یه تابع میام عمل مقایسه رو انجام می دم.

به همین راحتی.

clupcd
پنج شنبه 02 آذر 1391, 09:49 صبح
دوست عزیز چگونهگی دستور رو با مثال نمایش دهید

JaVa
پنج شنبه 02 آذر 1391, 10:26 صبح
دوباره سلام و...

Private Sub ButtonX4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX4.Click
bind = New Bind
bind.Bind(DGV, "Select * from TBL_Member where m_code=" & txtsearch.Text)
If DGV.RowCount > 1 Then
txtcode.Text = DGV.CurrentRow.Cells(0).Value
txtnational.Text = DGV.CurrentRow.Cells(1).Value
txtname.Text = DGV.CurrentRow.Cells(2).Value
txtfamily.Text = DGV.CurrentRow.Cells(3).Value
txtdate.Value = DGV.CurrentRow.Cells(4).Value
txtmail.Text = DGV.CurrentRow.Cells(5).Value
txtphone.Text = DGV.CurrentRow.Cells(6).Value
cmbreshteh.SelectedIndex = TypeReshteh(DGV.CurrentRow.Cells(7).Value)
txtadres.Text = DGV.CurrentRow.Cells(8).Value
Try
imgpic.ImageLocation = DGV.CurrentRow.Cells(9).Value
Catch ex As Exception
imgpic.Image = My.Resources._3163
End Try

End If
End Sub


Private Function TypeReshteh(ByVal strReshteh As String) As Byte
Select Case strReshteh
Case "گرافیک"
Return 0
Case "الکترونیک"
Return 1
Case "نقشه برداری"
Return 2
Case "کامپیوتر"
Return 3
Case "تاسیسات"
Return 4
Case "ساختمان"
Return 5
Case "ساخت و تولید"
Return 6
Case Else
Return 0
End Select
End Function


هرجاش مشکل بود بگید تا توضیح بدم.

ehsan-68
پنج شنبه 02 آذر 1391, 10:35 صبح
سلام ... ببین این به دردت میخوره ؟

چون یه نرم افزار نوشتم که هر کاربرش یه دسترسی خاص داشت و از sql میخوند از این روش استفاده کردم ...



rwd.dset = New DataSet()
rwd.adapt = New SqlDataAdapter("select * from Users where usercod='" & LoginForm1.UsernameTextBox.Text & "'", rwd.connection)
rwd.adapt.Fill(rwd.dset, "users")
Dim myrow As DataRow = rwd.dset.Tables("users").Rows(0)
ToolStripStatusLabel6.Text = myrow("name").ToString()
ToolStripStatusLabel9.Text = myrow("semat").ToString()

If myrow("backupdata") = True Then
BackupToolStripMenuItem.Enabled = True
Else
BackupToolStripMenuItem.Enabled = False
End If

clupcd
پنج شنبه 02 آذر 1391, 11:45 صبح
سلام ... ببین این به دردت میخوره ؟

چون یه نرم افزار نوشتم که هر کاربرش یه دسترسی خاص داشت و از sql میخوند از این روش استفاده کردم ...



rwd.dset = New DataSet()
rwd.adapt = New SqlDataAdapter("select * from Users where usercod='" & LoginForm1.UsernameTextBox.Text & "'", rwd.connection)
rwd.adapt.Fill(rwd.dset, "users")
Dim myrow As DataRow = rwd.dset.Tables("users").Rows(0)
ToolStripStatusLabel6.Text = myrow("name").ToString()
ToolStripStatusLabel9.Text = myrow("semat").ToString()

If myrow("backupdata") = True Then
BackupToolStripMenuItem.Enabled = True
Else
BackupToolStripMenuItem.Enabled = False
End If

درست شد ولی یه مشکل کوچک هست که اگر رکورد اول = true باشد من دکمه بعدی رو میزنم میره رکورد بعدی نمایش میده ولی radiobuton به همون حالت رکورد اول باقی میمونه

clupcd
پنج شنبه 02 آذر 1391, 11:47 صبح
دوباره سلام و...

Private Sub ButtonX4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX4.Click
bind = New Bind
bind.Bind(DGV, "Select * from TBL_Member where m_code=" & txtsearch.Text)
If DGV.RowCount > 1 Then
txtcode.Text = DGV.CurrentRow.Cells(0).Value
txtnational.Text = DGV.CurrentRow.Cells(1).Value
txtname.Text = DGV.CurrentRow.Cells(2).Value
txtfamily.Text = DGV.CurrentRow.Cells(3).Value
txtdate.Value = DGV.CurrentRow.Cells(4).Value
txtmail.Text = DGV.CurrentRow.Cells(5).Value
txtphone.Text = DGV.CurrentRow.Cells(6).Value
cmbreshteh.SelectedIndex = TypeReshteh(DGV.CurrentRow.Cells(7).Value)
txtadres.Text = DGV.CurrentRow.Cells(8).Value
Try
imgpic.ImageLocation = DGV.CurrentRow.Cells(9).Value
Catch ex As Exception
imgpic.Image = My.Resources._3163
End Try

End If
End Sub


Private Function TypeReshteh(ByVal strReshteh As String) As Byte
Select Case strReshteh
Case "گرافیک"
Return 0
Case "الکترونیک"
Return 1
Case "نقشه برداری"
Return 2
Case "کامپیوتر"
Return 3
Case "تاسیسات"
Return 4
Case "ساختمان"
Return 5
Case "ساخت و تولید"
Return 6
Case Else
Return 0
End Select
End Function


هرجاش مشکل بود بگید تا توضیح بدم.
دبل کلیک کردن روی رکورد یا سلول فعلی در datagride wive چگونه مشخص میشه ؟

ehsan-68
پنج شنبه 02 آذر 1391, 15:56 عصر
درست شد ولی یه مشکل کوچک هست که اگر رکورد اول = true باشد من دکمه بعدی رو میزنم میره رکورد بعدی نمایش میده ولی radiobuton به همون حالت رکورد اول باقی میمونه

اگه کدی رو که برای باتن نوشتی رو برام بذاری بهتر میتونم راهنماییت کنم ....

clupcd
پنج شنبه 02 آذر 1391, 18:52 عصر
95440
با سلام اولا یک اسکرین شات گذاشتم که بیشتر در جریان باشید
رویداد load فرم ویرایش رو به صورت زیر نوشتم :
Private Sub FrmTarakoneshEdit_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
empty()
combosItems()

strSql = "Select * from tblTarakonesh"
con = New SqlConnection(strCon)
con.Open()
da = New SqlDataAdapter(strSql, con)
da.Fill(ds, "tblTarakonesh")
Dim myrow As DataRow = ds.Tables("Tbltarakonesh").Rows(0)
If myrow("Pardakht") = 0 Then
RadioDaryaft.Checked = True
Else
RadioPardakht.Checked = True
RadioDaryaft.Checked = False
End If
If myrow("Daryaft") = 0 Then
TextMablagh.DataBindings.Add(New Binding("text", ds, "tblTarakonesh.Pardakht"))
Else
TextMablagh.DataBindings.Add(New Binding("text", ds, "tblTarakonesh.Daryaft"))
End If
ComboName.DataBindings.Add(New Binding("text", ds, "tblTarakonesh.Name"))
ComboGorooh.DataBindings.Add(New Binding("text", ds, "Tbltarakonesh.Gorooh"))
LabelCode.DataBindings.Add(New Binding("text", ds, "tblTarakonesh.Code"))
RichTozihat.DataBindings.Add(New Binding("text", ds, "tblTarakonesh.Tozihat"))
DateTimeTarakoneshEdit.DataBindings.Add(New Binding("value", ds, "tblTarakonesh.Tarikh"))
con.Close()
Me.Refresh()
End Sub
همان طور که در تصویر میبینید اطلاعات رکورد 5 ام در کنترل ها نمایان میشود و با زدن کلید های >و|<و... بین رکورد ها به خوبی جابه جا میشود الا دو مشکل
همونطور که در کد ها میبینید من طبق اون چیزی که شما گفتید گفتم اگر خانه دریافت=0 بود آنگاه محتویات داخل فیلد پرداخت رو درون text کنترل بگذار وگرنه محتویات داخل فیلد دریافت رو در text کنترل بذار
ولی همان طور که میبینید 0 رو گذاشته
و radiobuton هم همین مشکل رو داره
کمک لطفا...
ممنون

mhq1368
پنج شنبه 02 آذر 1391, 20:29 عصر
سلام

دوست عزیز یه همچین چیزی بنویسید



dim i as integer
i=bindingcontext(dt,"tblname").position
if(ds.table[""tblname").rows(i).item("itemname")==مقدار مورد نظر)
{
//دستورات
}
else
{
//دستورات
}

ehsan-68
پنج شنبه 02 آذر 1391, 23:25 عصر
شما اگه میخوای مقدار فیلد دریافت و پرداختو در تکست باکست ببینی باید دستورتو تغییر بدی



If myrow("Daryaft") = 0 Then
TextMablagh.Text = myrow("Pardakht").ToString()

Else
TextMablagh.Text = myrow("Daryaft").ToString()

End If




ببینید اینجوری درست میشه ؟
اینو تویه باتن بذارید

clupcd
جمعه 03 آذر 1391, 10:30 صبح
با تشکر دوستان اما نشد هرکدومتون آیدی یاهو دارین بدین تا در اونجا حل کنیم
ممنون میشم