PDA

View Full Version : مشکل دو مرتبه insert شدن در بانک



baidin
سه شنبه 02 دی 1393, 19:04 عصر
سلام
من جدیدا شروع به کد نویسی asp.net کردم. مشکلی که دارم این هست که کدهایی که به ازای کلیک شدن باتن insert , update,delete می نویسم بعد از اینکه کاربر کلیک می کنه دو مرتبه اجرا میشه. ممنون میشم دوستان راهنمایی کنند

پیام حیاتی
سه شنبه 02 دی 1393, 19:28 عصر
سلام
کدهاتون رو قرار بدید.

baidin
سه شنبه 02 دی 1393, 19:35 عصر
Try
Con.Open()
IsAdded = cmd.ExecuteNonQuery() > 0
Catch ex As Exception
MsgBox( ex.Message)
Exit Sub
End Try

alizanganeh
سه شنبه 02 دی 1393, 20:07 عصر
این دیگه چطور کدیه ؟
کل کدهایی که میزنید همینان یا نه ؟!!!

baidin
سه شنبه 02 دی 1393, 20:11 عصر
این دیگه چطور کدیه ؟
کل کدهایی که میزنید همینان یا نه ؟!!!

دوست عزیز من برنامه نویسی ویندوز فرم زیاد کار کردم. کد نویسی درج در بانک ایرادی نداره منتهی نمیدونم چرا رویداد کلیک باتن ها دوبار اتفاق میفته

aroshanzamir
سه شنبه 02 دی 1393, 20:22 عصر
BreakPoint بزار ببین چه اتفاقی داره میفته ؟
خودت چک بکن

baidin
سه شنبه 02 دی 1393, 20:33 عصر
BreakPoint بزار ببین چه اتفاقی داره میفته ؟
خودت چک بکن

مرسی
قبلا همینکار را انجام دادم به نتیجه نرسیدم
رویداد باتن دو مرتبه اجرا میشه
به محض اینکه رویداد باتن به اتمام می رسه مجددا از ابتدا یک مرتبه دیگر اجرا میشه
(آیا با IsPostBack نمیشه اجرای مجدد را جلوگیری نمود؟)

ahmad156
چهارشنبه 03 دی 1393, 16:20 عصر
شرط IsPostBack رو توی PageLoad قرار دادین؟

m.webgard
چهارشنبه 03 دی 1393, 19:04 عصر
مرسی
قبلا همینکار را انجام دادم به نتیجه نرسیدم
رویداد باتن دو مرتبه اجرا میشه
به محض اینکه رویداد باتن به اتمام می رسه مجددا از ابتدا یک مرتبه دیگر اجرا میشه
(آیا با IsPostBack نمیشه اجرای مجدد را جلوگیری نمود؟)

سلام
دوست عزیز شرط IsPostBack رو قرار بدید درست میشه
موفق باشید

aroshanzamir
چهارشنبه 03 دی 1393, 22:16 عصر
مرسی
قبلا همینکار را انجام دادم به نتیجه نرسیدم
رویداد باتن دو مرتبه اجرا میشه
به محض اینکه رویداد باتن به اتمام می رسه مجددا از ابتدا یک مرتبه دیگر اجرا میشه
(آیا با IsPostBack نمیشه اجرای مجدد را جلوگیری نمود؟)


شرط


if(!this.IsPostBack)



در Page_Load

baidin
جمعه 05 دی 1393, 19:57 عصر
شرط


if(!this.IsPostBack)



در Page_Load

واااااااااااااای بازم مشکل هنوز هست:ناراحت:

aroshanzamir
جمعه 05 دی 1393, 21:15 عصر
سلام /دارم تعجب می کنم : واقعا عجیبه :
امکانش هست کد های اون بخش را قرار بدی ؟

baidin
جمعه 05 دی 1393, 21:20 عصر
سلام /دارم تعجب می کنم : واقعا عجیبه :
امکانش هست کد های اون بخش را قرار بدی ؟
بفرمایید:


Partial Class ClsX
Inherits System.Web.UI.Page
Protected Sub btnInsert_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnInsert.Click
Dim IsAdded As Boolean = False
Dim Con As New System.Data.SqlClient.SqlConnection(System.Configu ration.ConfigurationManager.ConnectionStrings("XXX").ToString)
Dim cmd As New System.Data.SqlClient.SqlCommand
Dim intMaxCode As Integer = 0
cmd.Connection = Con

If GetMaxCode(intMaxCode) = False Then
Exit Sub
End If



cmd.CommandText = "INSERT INTO tblForush ( Code, Address)" & _
"VALUES (@Code,@Address)"
cmd.Parameters.AddWithValue("@Code", intMaxCode + 1)
cmd.Parameters.AddWithValue("@Address", "Tehran")
Try
Con.Open()
IsAdded = cmd.ExecuteNonQuery() > 0
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try

End Sub

Public Function GetMaxCode(ByRef intMaxCode As Integer) As Boolean
Dim Con As New System.Data.SqlClient.SqlConnection(System.Configu ration.ConfigurationManager.ConnectionStrings("AmlakeSahelDbConnectionString").ToString)
Dim Cmd As New System.Data.SqlClient.SqlCommand
Dim SqlDr As System.Data.SqlClient.SqlDataReader

Cmd.Connection = Con
Cmd.CommandText = "SELECT MAX(Code) AS MaxCode FROM tblForush"
'---------------------------------------------------------------------------
Try
Con.Open()
SqlDr = Cmd.ExecuteReader()
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try
If SqlDr Is Nothing Then
Return False
ElseIf Not SqlDr.HasRows Then
intMaxCode = 0
Return True
Else
SqlDr.Read()
Try
intMaxCode = SqlDr("MaxCode")
Catch ex As Exception
intMaxCode = 0
End Try
Con.Close()
Return True
End If
End Function


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Exit Sub
End If
End Sub
End Class

aroshanzamir
جمعه 05 دی 1393, 21:53 عصر
نمی دونم چرا : عجیبه :
دستور Sql را همین طور نوشتی

"INSERT INTO tblForush(code,address)VALUES(@code,@address)"
بعد از cmd.ExecuteNonQuery() کانکشن را Close کن ... ببین اتفاقی میافته

baidin
جمعه 05 دی 1393, 22:47 عصر
نمی دونم چرا : عجیبه :
دستور Sql را همین طور نوشتی

"INSERT INTO tblForush(code,address)VALUES(@code,@address)"
بعد از cmd.ExecuteNonQuery() کانکشن را Close کن ... ببین اتفاقی میافته
close کردم. باز هم دو مرتبه اجرا میشه.:افسرده:

baidin
چهارشنبه 10 دی 1393, 10:58 صبح
در فایل aspx خودم داشتم:


<asp:Button ID="btnInsert" runat="server" Text="ثبت" OnClick="btnInsert_Click"
ValidationGroup="vgAdd" style="font-family: Tahoma; font-size: small"
Width="100px" />


در قسمت سورس کلاس


Protected Sub btnInsert_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnInsert.Click




در صورتیکه یکی از موارد قرمز رنگ یا سبز رنگ را حذف می کنم مشکل حل می شود!
مساله این هست که آیا اون قسمت سبز رنگ و قرمز رنگ (دو مرتبه تکرار شده) باعث این اشکال من شده است؟:متفکر:
اگر پاسخ صحیح هست تفاوتی دارد که کدوم یک را حذف کنم؟