PDA

View Full Version : سوال: کمک برای ثبت اطلاعات در دیتاگرید



azbddk
سه شنبه 21 خرداد 1392, 08:51 صبح
دوستان من این کد رو نوشتم.حالا وقتی رویButton1 کلیک می کنم پیغام روبه رو رو میده:کاربرگرامی شماره کتاب تکراری است.لطفاً کمک کنید.
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports System.Data.OleDb
Public Class S
Private ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\VAZ.mdb"
Public Add_Edit As Boolean = True
Private Sub S_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim a As String = "1"
Dim str As String
If Add_Edit = True Then

Dim ocn1 As New OleDbConnection(ConnectionString)
Dim cm1 As New OleDbCommand("SELECT * FROM tblmain", ocn1)
Dim da As New OleDbDataAdapter(cm1)
Dim ds As New DataSet()
ocn1.Open()
da.Fill(ds, "tblmain")
str = Convert.ToString(CInt(cm1.ExecuteScalar()))
Dim b As Integer = Int32.Parse(str) + Int32.Parse(a)
TextBox1.Text = b.ToString()
Else
Dim ocn1 As New OleDbConnection(ConnectionString)
Dim cm1 As New OleDbCommand("SELECT * FROM tblmain", ocn1)
Dim da As New OleDbDataAdapter(cm1)
Dim ds As New DataSet()
ocn1.Open()
da.Fill(ds, "tblmain")
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
If Add_Edit = True Then
Dim ocn As New OleDbConnection(ConnectionString)
Dim ocm As New OleDbCommand()
ocm.CommandText = "INSERT INTO tblmain (ID,CodeBook,Namebook,ZirGrouh,Price,author,commen t) VALUES (@p1,@p2,@p3,@p4,@p5,@p6,@p7)"
ocm.Parameters.Clear()
ocm.Parameters.AddWithValue("@p1", TextBox1.Text)
ocm.Parameters.AddWithValue("@p2", TextBox2.Text)
ocm.Parameters.AddWithValue("@p3", TextBox3.Text)
ocm.Parameters.AddWithValue("@p4", TextBox4.Text)
ocm.Parameters.AddWithValue("@p5", TextBox5.Text)
ocm.Parameters.AddWithValue("@p6", TextBox6.Text)
ocm.Parameters.AddWithValue("@p7", TextBox7.Text)
ocm.Connection = ocn
ocn.Open()
ocm.ExecuteNonQuery()
ocn.Close()
ocn.Dispose()
MessageBox.Show("کتاب جدید با موفقیت ثبت شد", "ثبت کتاب جدید", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading)
Close()
End If
Catch
MessageBox.Show("کاربر گرامی شماره کتاب تکراری است", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading)
End Try
End Sub
End Class

pooya1072
سه شنبه 21 خرداد 1392, 17:09 عصر
سلام دوست عزیز
به رویداد Button1_Click توجه کن . از Try استفاده شده و در قسمت Catch تعریف کردید که در صورت خطا همون پیامی که گفتید رو نمایش بده . خب مسلما که خطایی روی داده . شما بعد از catch به جای پیام قبلی دستور زیر رو تایپ کن :

MsgBox(Ex.Message)
البته بهتره از BreakPoint استفاده کنی و خطی که خطا در اون روی میده رو پیدا کنی . بعد از اینکار شماره خط و پیام خطا رو توی تاپیک بزار تا من یا هر کدوم از دوستان که بتونیم کمکتون کنیم.اینطور زودتر به جواب میرسی .

azbddk
چهارشنبه 22 خرداد 1392, 08:57 صبح
پیغام خطا این هستش


http://upload7.ir/images/74989836794271115160.png

Mani_rf
چهارشنبه 22 خرداد 1392, 13:47 عصر
ocm.CommandText = "INSERT INTO tblmain (ID,CodeBook,Namebook,ZirGrouh,Price,author,commen t) VALUES (@p1,@p2,@p3,@p4,@p5,@p6,@p7)"

اون قسمتی که بولد کردم اشتباه؛ فاصله مجاز نیست.

azbddk
جمعه 24 خرداد 1392, 11:00 صبح
یک سوال دیگه
من کد زیر رو نوشتم
Private ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\VAZ.mdb"
Public Add_Edit As Boolean = True
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
If Add_Edit = False Then
Dim ocn As New OleDbConnection(ConnectionString)
Dim ocm As New OleDbCommand()
ocm.CommandText = "UPDATE tblmain Set Codebook=?,Namebook=?,zirgrouh=?,price=?,author=?, molahezat=? Where ID=?"
ocm.Parameters.Clear()
ocm.Parameters.AddWithValue("@p7", TextBox1.Text)
ocm.Parameters.AddWithValue("@p6", TextBox2.Text)
ocm.Parameters.AddWithValue("@p5", TextBox3.Text)
ocm.Parameters.AddWithValue("@p4", TextBox4.Text)
ocm.Parameters.AddWithValue("@p3", TextBox5.Text)
ocm.Parameters.AddWithValue("@p2", TextBox6.Text)
ocm.Parameters.AddWithValue("@p1", TextBox11.Text)
ocm.Connection = Nothing
ocm.Connection = ocn
ocn.Open()
ocm.ExecuteNonQuery()
ocn.Close()
ocm.Dispose()
ocn.Dispose()
MessageBox.Show("اطلاعات کتاب مورد نظر با موفقیت ویرایش شد", "ویرایش اطلاعات کتاب", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
Close()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
حالا این پیغام رو میده
http://upload7.ir/images/20013037633770182058.png

Mani_rf
جمعه 24 خرداد 1392, 11:42 صبح
منظورت از ؟ تو کد Update دقیقا چیه؟