PDA

View Full Version : چک باکس و بانک اطلاعاتی



bastakboys
شنبه 31 مرداد 1388, 14:22 عصر
مشکل کد پایین چیه؟


ol_cmf = New OleDbCommand("INSERT INTO Sat(Sat,FMo,MoSabt,MoVir,MoHazv,FKh,KhSabt,KhVir,K hHazv) values ('" & TbSat.Text.ToString & "','" & CBMo.Checked & "','" & CBMoSabt.Checked & "','" & CBMoVir.Checked & "','" & CBMoHazv.Checked & "','" & CBKH.Checked & "','" & CBKhsabt.Checked & "','" & CBKhVir.Checked & "','" & CBKhHazv.Checked & "')", ol_cnf)

فیلد Sat از نوع text
بقیه از نوع Yes/No
بانک: اکسس

خطا:
Data type mismatch in criteria expression

Hossis
شنبه 31 مرداد 1388, 14:36 عصر
من که خطائی ندیدم
ببین متغیرها رو درست وارد کردی؟؟
این کد بدون خطا
یک تکست باکس با چند چک باکس


Imports System.Data.OleDb
Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim OL_cnf As OleDbConnection
Dim ol_cmf As New OleDbCommand("INSERT INTO Sat(Sat,FMo,MoSabt,MoVir,MoHazv,FKh,KhSabt,KhVir,K hHazv) values ('" & RichTextBox1.Text.ToString & "','" & cb1.Checked & "','" & cb1.Checked & "','" & cb2.Checked & "','" & cb3.Checked & "','" & cb4.Checked & "','" & cb6.Checked & "','" & cb7.Checked & "','" & cb6.Checked & "')", OL_cnf)
End Sub
End Class

toopak
شنبه 31 مرداد 1388, 14:37 عصر
دوست عزیز شما در قسمت value باید CheckState کمبوباککس ها رو ذخیره کنید ،نه checked رو
یعنی به جای CheckBox1.Checked
از CheckBox1.CheckState استفاده کنید

toopak
شنبه 31 مرداد 1388, 14:39 عصر
این هم کد ویرایش شده


ol_cmf = New OleDbCommand("INSERT INTO Sat(Sat,FMo,MoSabt,MoVir,MoHazv,FKh,KhSabt,KhVir,K hHazv) values ('" & TbSat.Text.ToString & "','" & CBMo.CheckState & "','" & CBMoSabt.CheckState & "','" & CBMoVir.CheckState & "','" & CBMoHazv.CheckState & "','" & CBKH.CheckState & "','" & CBKhsabt.CheckState & "','" & CBKhVir.CheckState & "','" & CBKhHazv.CheckState & "')", ol_cnf)

Hossis
شنبه 31 مرداد 1388, 14:45 عصر
این هم کد ویرایش شده


فکر نکنم کار بکنه چون فیلد yes\no فقط مقادیر بولی رو میگیره که دارای دو حالت مثبت و منفی هستند ولی این خصوصیتی که شما در نظر گرفتید، دارای سه حالت است

toopak
شنبه 31 مرداد 1388, 14:53 عصر
چرا 3حالت؟
2حال داره
یا چک true شده یا false پس 2حالته
من خودم از این کد تو پروژه تاکسی سرویس استفاده کردم ،جواب داده
شما هم یه تست بزن

bastakboys
شنبه 31 مرداد 1388, 14:58 عصر
این هم کد ویرایش شده


ol_cmf = New OleDbCommand("INSERT INTO Sat(Sat,FMo,MoSabt,MoVir,MoHazv,FKh,KhSabt,KhVir,K hHazv) values ('" & TbSat.Text.ToString & "','" & CBMo.CheckState & "','" & CBMoSabt.CheckState & "','" & CBMoVir.CheckState & "','" & CBMoHazv.CheckState & "','" & CBKH.CheckState & "','" & CBKhsabt.CheckState & "','" & CBKhVir.CheckState & "','" & CBKhHazv.CheckState & "')", ol_cnf)
ممنونم کار کرد
من مثل آقای Hossis فکر میکردم

برای این حدود 2 ساعته پشتش گیر کردم بازم ممنون

toopak
شنبه 31 مرداد 1388, 15:05 عصر
خواهش میکنم

bastakboys
شنبه 31 مرداد 1388, 18:11 عصر
یک مشکل دیگه


ol_cmf = New OleDbCommand(" select * from Sat where Sat = '" & DataGridView1.Rows(e.RowIndex).Cells("Sat").Value.ToString & "' ", ol_cnf)
drff = ol_cmf.ExecuteReader
If drff.HasRows = True Then
drff.Read()
'---------------------
TbSat.Text = drff("sat")



'-----------------------------
If Not drff("Fmo").ToString = "" Then CBMo.CheckState = drff("fmo")
'-----------------------------
If Not drff("mosabt").ToString = "" Then CBMoSabt.CheckState = drff("mosabt")
'-----------------------------


در کد بالا کار انجام میشه اما چک باکس ها وضعیت شون عوض نمی شه

toopak
شنبه 31 مرداد 1388, 20:59 عصر
دقیقا میخوایید چیکار بکنید؟

bastakboys
شنبه 31 مرداد 1388, 21:30 عصر
من در رویداد کلیک سل دیتا گرید این کدها رو نوشتم تا با کلیک بر روی هر سل اطلاعات مزبوط به آن سطر به تکست باکس یا کنترل های روی فرم ارسال شود و کاربر با این کار بتواند آن سطر را ویرایش یا حذف کند
در حالت معمولی که من از اطلاعات تکست و تاریخ و شماره دارم این کد بخوبی کار می کند اما حالا که اطلاعات من مربوط به چکباکس است وضعیت آن تغییر نمی کند
یعنی با اجرای این کد تنها فیلد اول که از نوع تکست است تغییر می کند و دو دستور


'-----------------------------
If Not drff("Fmo").ToString = "" Then CBMo.CheckState = drff("fmo")
'-----------------------------
If Not drff("mosabt").ToString = "" Then CBMoSabt.CheckState = drff("mosabt")
'-----------------------------

اجرا نمی شود(وضعیت این چک باکس ها تغییر نمی کند.)

toopak
شنبه 31 مرداد 1388, 21:50 عصر
ببین این کد به دردت میخوره؟
واسه بیرون کشیدن اطلاعات چک باکس استفاده کردم


Dim cmdsql As New OleDbCommand
Dim inssql As String
cmdsql.Connection = con
inssql = "SELECT * FROM tbuser where uname= '" & a & "'"
cmdsql.Connection = con
cmdsql.CommandText = inssql
Dim DR As OleDbDataReader
DR = cmdsql.ExecuteReader
If DR.HasRows = True Then
DR.Read()
CheckBox1.Checked = DR("ins")
CheckBox2.Checked = DR("del")
CheckBox3.Checked = DR("rep")
CheckBox4.Checked = DR("mon")
CheckBox5.Checked = DR("udb")
CheckBox6.Checked = DR("active")
CheckBox7.Checked = DR("um")

End If