ايران ويج

نسخه‌ی کامل: مشکل این قطعه کد چیه ؟
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
من خودم فکر می کنم به خاطر حجم کد insert باشه چون وقتی مقداری از اون رو که حذف می کنم کار میکنه ولی کلش رو error میده و اون قسمتیش رو که حذف میکنم با یه دستور update میتونم وارد دیتابیس کنم اما می‌خوام به صورت یک Insert باشه و دیگه از دستور update استقاده نکنم .

از اساتید محترم خواهشمند است کمک کنید .

کد:
Dim piccon As New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=" & "data" & " ;Data Source=server")
            Dim ms As New MemoryStream
            If EditBox16.Text = "0" Then picbox.Image.Save(ms, picbox.Image.RawFormat)
            Dim arrimage() As Byte = ms.GetBuffer
            Try
                piccon.Open()

                Dim strsql As String = "INSERT INTO acc_persons (name,family,fathername,idno,codemeli,birthdate" & _
       ",birthplace,idplace,gender,childno,madrak,reshte,married,address,tell,mobile,personelcode" & _
       ",cardcode,semat,datein,khateme,dateout,nobatkaricode,nobatkari,noeestekhdam,masool,dep,grooh" & _
       ",paye)" & _
       " VALUES (N'" + EditBox1.Text + "',N'" + EditBox2.Text + "',N'" + EditBox3.Text + "',N'" + EditBox4.Text + "'" & _
       ",N'" + EditBox7.Text + "','" & date1.DateValue & "',N'" + EditBox5.Text + "',N'" + EditBox6.Text + "'" & _
       ",N'" + view.Text + "','" + a.Text + "',N'" + madrak.Text + "',N'" + reshte.Text + "'" & _
       ",'" + marrid.Checked + "',N'" + EditBox10.Text + "',N'" + EditBox8.Text + "',N'" + EditBox11.Text + "'" & _
       ",N'" + EditBox14.Text + "',N'" + EditBox13.Text + "',N'" + EditBox12.Text + "','" & date2.DateValue & "'" & _
       ",'" + khateme.Checked + "','" & date3.DateValue & "',N'" + ncode.Text + "',N'" + n.Text + "'" & _
       ",N'" + estekhdam.Text + "',N'" + masool.Text + "',N'" + dep.Text + "','" & grooh.Text & "'" & _
       ",'" & paye.Text + "')"
                
                Dim cmd As New SqlCommand(strsql, piccon)
                With cmd
                    .Parameters.Add(New SqlParameter("@pic", SqlDbType.Image)).Value = arrimage
                End With
                
                If cmd.ExecuteNonQuery = 1 Then
                    m.Prompt = "ثبت اطلاعات" + vbCrLf + "----------------------------------------" + vbCrLf + "اطلاعات مورد نظر با موفقیت ثبت شد"
                    m.Buttons = MBMsgBoxEx.mbButtonConstants.mbOneCustomButton
                    m.Show()
                    Me.EDARIhokmTableAdapter.Fill(Me.ERPDataSet.EDARIhokm)
                    piccon.Close()
                    Me.Close()
                Else
                    m.Prompt = "خطا در ثبت اطلاعات" + vbCrLf + "----------------------------------------" + vbCrLf + "به علت عدم اتصال با سرور اطلاعات مورد نظر ذخیره نشد لطفاً دوباره عملیات ذخیره سازی را انجام دهید"
                    m.Buttons = MBMsgBoxEx.mbButtonConstants.mbOneCustomButton
                    m.Show()
                End If
            Catch ex As Exception
                m.Prompt = "خطا در ثبت اطلاعات" + vbCrLf + "----------------------------------------" + vbCrLf + "به علت عدم اتصال با سرور اطلاعات مورد نظر ذخیره نشد لطفاً دوباره عملیات ذخیره سازی را انجام دهید"
                m.Buttons = MBMsgBoxEx.mbButtonConstants.mbOneCustomButton
                m.Show()
            End Try
            piccon.Close()
سلام
بهتر بود برای دستور insert هم از پارامتر ها استفاده می کردی . احتمال اشتباه کمتر بود (دستورت هم واضح تر می شد)
اگه فایل پروژه رو ضمیمه کنی خیلی بهتره .
چون برای تست کردن هم باید فرم طراحی کنیم هم بانک و ... (وقت گیره )

موفق باشی
سلام آقای جعفری
ممنون از پیشنهادتون از طریق parametr ها انجام دادم و کار هم میکنه مشکل نداره اما مواقعی که یکی از فیلدها خالیست error میده البته لازم به ذکر که تو پایگاه داده اون سطون ها تیک null خورده

کدم رو اینجا گذاشتم از هر دو حالت هم توش هست فقط یکی از اونا رو command کردم که اجرا نشه یه نگا هم شما بش بندازید و من رو راهنمایی کنید .

راستی یک مشکل دیگه هم داره حالا که لطف کردید یه نگاه به گریدی که توش گذاشتم بندازید من می خوام وقتی از یک سطر به سطر دیگه میرم اگه تو سطونی خالی بود error ی که می خوام رو بده ، از طریق error خود گرید این کارو کردم اما فقط در صورتی که null باشه error میده و وقتی که اطلاعات داخل cell رو پاک میکنم و به سطر بعد میرم error ی مبنی بر خالی بودنش نمیده .

اگه کمکم کنید واقعاً لطف بزرگی به من کردید .

چون از کامپوننتهای janus استفاده کردم حجمش یکم بالا بود تو سایت ایران ویج نشد upload کنم و یه جا دیگه up کردم این هم لینک برنامه
سلام
فکر کنم کامپوننت استفاده شده رو قرار ندادی ! چون فرم خطا میده و نمیشه دید . بانک هم که وجود نداره !
در هر صورت ...
در مورد مشکل اولت که گفتی اگه فیلدی خالی باشه ... کاملا درسته (یعنی باید خطا بده ) اگه می خوای مشکلی نداشته باشه بهتره برای فیلد های جدول بانک اطلاعاتی مقدار پیش فرض تعریف کنی .

مشکل دوم را با یک مثال توضیح بده یا کامپوننت رو آپلود کن (یا لینک دانلود) تا بتونم فرم رو ببینم .

موفق باشی
سلام
من data رو اینجا گذاشتم

این هم لینک دانلود اون کامپوننت هستش من فکر میکردم شما این کامپوننت رو داشته باشید به همین دلیل upload نکردم البته حجمش هم بالاست ولی به دانلودش می ارزه ، چیز های جالبی برای کارایی بهتره برنامه و زیبایی داره دانلود کامپوننت جانوس