نمایش نتایج 1 تا 8 از 8

نام تاپیک: مشکل Update کردن با فیلد Autonumber در اکسس

  1. #1

    مشکل Update کردن با فیلد Autonumber در اکسس

    باسلام و عرض خسته نباشید خدمت همه دوستان
    من در برنامه ام یه مشکل عجیب دارم
    به دستورات زیر توجه بفرمائید

    PrivateSub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    Dim con As OleDbConnection = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=bank.mdb;")
    Dim command As OleDbCommand = New OleDbCommand
    command.Connection = con
    command.CommandText = "update table1 set nam=@nam, famil=@famil, tahsilat=@tahsilat, sokoonat=@sokoonat, ghad=@ghad,pedar=@pedar,nomre=@nomre where id = '" & TextBox7.Text & "'"
    command.Parameters.AddWithValue("@nam", Trim(TextBox1.Text))
    command.Parameters.AddWithValue("@famil", Trim(TextBox2.Text))
    command.Parameters.AddWithValue("@tahsilat", Trim(ComboBox1.Text))
    command.Parameters.AddWithValue("@sokoonat", Trim(TextBox4.Text))
    command.Parameters.AddWithValue("@ghad", Trim(TextBox3.Text))
    command.Parameters.AddWithValue("@pedar", Trim(TextBox3.Text))
    command.Parameters.AddWithValue("@nomre", Trim(TextBox6.Text))


    con.Open()

    command.ExecuteNonQuery()

    con.Close()

    EndSub
    textbox7 شماره id رکوردیست که کاربر در دیتاگرید اون رو انتخاب میکنه
    من یه فیلد Id در جدولم دارم که از نوع autonumber هست
    متاسفانه دستور update ام با وجود این فیلد کار نمیکنه
    اما زمانیکه این فیلد رو از autonumber به text تبدیل میکنم مشکلم حل میشه
    آیا امکانش هست دستور update با نوع فیلد autonumber مشکل داشته باشه؟
    ممنون میشم کمکم کنید
    یاعلی


  2. #2

    نقل قول: مشکل Update کردن با فیلد Autonumber در اکسس

    نوع فیلد id شما عددی است در صورتی که آن را با مقداری رشته ای مقایسه می کنی. کتیشن ('') های قبل و بعد TextBox7 را حذف کن و دوباره امتحان کن.
    بهتر است که مقدار TextBox7 را نیز به عدد تبدیل کنی. یعنی Val(TextBox7.Text)
    دانلود حسابخانه مانی، برنامه مدیریت درآمد و هزینه رایگان

    هر آنچه که هستیم، نتیجه افکاریست که در گذشته داشته ایم. (بودا)
    واحد فاصله «متر» نیست، «اشتیاق» است. اگر مشتاقش باشی حتی يک قدم هم فاصله ای دور است.

    رنگ رنگی | آموزش

  3. #3

    نقل قول: مشکل Update کردن با فیلد Autonumber در اکسس

    سلام
    ممنون از توضیحاتتون
    این راه رو هم امتحان کردم
    متاسفانه نشد
    به این دستور که میرسه اشکال میگیره :
    command.ExecuteNonQuery()
    نکته دیگه اینکه من با همین فرمت دستور delete ام رو به درستی اجرا میکنم:
    Dim con As OleDbConnection = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=bank.mdb;")
    Dim command As OleDbCommand = New OleDbCommand
    command.Connection = con
    command.CommandText = "delete * from table1 where id=@id"
    command.Parameters.AddWithValue("@id", Trim(TextBox7.Text))
    con.Open()

    command.ExecuteNonQuery()

    con.Close()


    ممنون میشم راهنمایم کنید
    یاعلی

  4. #4

    نقل قول: مشکل Update کردن با فیلد Autonumber در اکسس

    برای Update کردن هم ID را به صورت پارامتر بفرست. احتمالا مشکل از همون نوع داده باشه. اگر نشد.
    1- در قسمت Server Explorer کد SQL که تولید می کنی را اجرا کن ببین خطایی که میده چیه.
    2- اگر نشد؛ متن پیغام خطا را کپی کن اینجا یا از پیغام خطا عکس بگیر ببینیم مشکلش چیه!
    دانلود حسابخانه مانی، برنامه مدیریت درآمد و هزینه رایگان

    هر آنچه که هستیم، نتیجه افکاریست که در گذشته داشته ایم. (بودا)
    واحد فاصله «متر» نیست، «اشتیاق» است. اگر مشتاقش باشی حتی يک قدم هم فاصله ای دور است.

    رنگ رنگی | آموزش

  5. #5

    نقل قول: مشکل Update کردن با فیلد Autonumber در اکسس

    سلام خدمت همه عزیزان
    پروژه ام رو جهت مشاهده و راهنمایی در اینجا آپلود میکنم
    ابتدا رکورد مورد نظر رو انتخاب کنید ، سپس جهت ویرایش رکوردها بر روی دکمه ویرایش کلیک کنید ، بعد از انجام تغییرات بر روی دکمه ثبت تغییرات کلیک کنید تا خطای مربوطه رو مشاهده بفرمائید
    ممنون و متشکر از لطف شما
    یاعلی
    فایل های ضمیمه فایل های ضمیمه

  6. #6
    کاربر دائمی آواتار alimanam
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    لندن
    سن
    38
    پست
    1,556

    نقل قول: مشکل Update کردن با فیلد Autonumber در اکسس

    با سلام وتبریک سال نو ....

    دوست عزیز شما تا تونسته بودین لقمه رو هی دورسرتون چرخونده بودی ......... واسه همچین کاری اصلاً نیاز به این همه کد نبود که !!! مشکل شما از Bind کردن کنترل های تکس بود . کدها رو این جوری تغییر بده مشکلتون حل میشه ...



    Imports System.Data.OleDb
    Public Class Form1
    Dim cnnstring As String = "provider=microsoft.jet.oledb.4.0;data source=bank.mdb;"

    Sub loaddata()
    Dim ad As New OleDbDataAdapter("Select * from Table1", cnnstring)
    Dim dt As New DataTable
    ad.Fill(dt)
    grdAuthorTitles.DataSource = dt
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    loaddata()
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    Try
    Dim cnn As New OleDbConnection(cnnstring)
    Dim cmd As New OleDbCommand("update table1 set nam=@nam, famil=@famil, tahsilat=@tahsilat, sokoonat=@sokoonat, ghad=@ghad,pedar=@pedar,nomre=@nomre where id = " & CInt(TextBox7.Text), cnn)
    If cnn.State = ConnectionState.Closed Then cnn.Open()
    With cmd
    .Parameters.Clear()
    .Parameters.AddWithValue("@nam", Trim(TextBox1.Text))
    .Parameters.AddWithValue("@famil", Trim(TextBox2.Text))
    .Parameters.AddWithValue("@tahsilat", Trim(ComboBox1.Text))
    .Parameters.AddWithValue("@sokoonat", Trim(TextBox4.Text))
    .Parameters.AddWithValue("@ghad", Trim(TextBox3.Text))
    .Parameters.AddWithValue("@pedar", Trim(TextBox5.Text))
    .Parameters.AddWithValue("@nomre", Trim(TextBox6.Text))
    .ExecuteNonQuery()
    End With
    cnn.Close()
    MsgBox("Done !", MsgBoxStyle.Information)
    loaddata()
    Catch ex As Exception
    MsgBox(Err.Description, MsgBoxStyle.Exclamation)
    End Try
    End Sub

    Private Sub grdAuthorTitles_CellMouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArg s) Handles grdAuthorTitles.CellMouseUp
    If Not grdAuthorTitles.Rows.Count = 0 Then
    TextBox1.Text = grdAuthorTitles.CurrentRow.Cells(1).Value
    TextBox2.Text = grdAuthorTitles.CurrentRow.Cells(2).Value
    ComboBox1.Text = grdAuthorTitles.CurrentRow.Cells(3).Value
    TextBox3.Text = grdAuthorTitles.CurrentRow.Cells(5).Value
    TextBox4.Text = grdAuthorTitles.CurrentRow.Cells(4).Value
    TextBox5.Text = grdAuthorTitles.CurrentRow.Cells(6).Value
    TextBox6.Text = grdAuthorTitles.CurrentRow.Cells(7).Value
    TextBox7.Text = grdAuthorTitles.CurrentRow.Cells(0).Value
    End If
    End Sub

    End Class




    موفق باشید ./

  7. #7
    کاربر دائمی
    تاریخ عضویت
    تیر 1386
    محل زندگی
    fekrenaw.com
    پست
    152

    نقل قول: مشکل Update کردن با فیلد Autonumber در اکسس

    دوستان گرامی
    لطفا به مسایل ابتدایی هم توجه کنین! مشکل از این بود که پیش از مقدار دهی Command کانکشن را باز نکرده بود!!!!!!!!!!!!!!!1

  8. #8

    نقل قول: مشکل Update کردن با فیلد Autonumber در اکسس

    سلام
    کانکشن که باز بود:
    کد HTML:
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    Dim con As OleDbConnection = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=bank.mdb;")
    Dim command As OleDbCommand = New OleDbCommand
    command.Connection = con
    command.CommandText = "update table1 set nam=@nam, famil=@famil, tahsilat=@tahsilat, sokoonat=@sokoonat, ghad=@ghad,pedar=@pedar,nomre=@nomre where id = '" & Val(TextBox7.Text) & "'"
    'command.Parameters.AddWithValue("@id", Trim(TextBox7.Text))
    command.Parameters.AddWithValue("@nam", Trim(TextBox1.Text))
    command.Parameters.AddWithValue("@famil", Trim(TextBox2.Text))
    command.Parameters.AddWithValue("@tahsilat", Trim(ComboBox1.Text))
    command.Parameters.AddWithValue("@sokoonat", Trim(TextBox4.Text))
    command.Parameters.AddWithValue("@ghad", Trim(TextBox3.Text))
    command.Parameters.AddWithValue("@pedar", Trim(TextBox3.Text))
    command.Parameters.AddWithValue("@nomre", Trim(TextBox6.Text))
    con.Open()
    command.ExecuteNonQuery()
    con.Close()
    End Sub

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •