PDA

View Full Version : سوال: خطا ExecuteNonQuery بر روی هاست



keyjaa
یک شنبه 29 شهریور 1394, 14:59 عصر
دوستان برنامه نویس سلام ؛

من یه پروژه ساده با VisualStudio تحت وب به زبان VB طراحی کردم که کاربران ابتدا لاگین می کنن و بعد از شناسایی وارد سایت میشن . داخل صفحه شخصی شون می تونن یسری مطالب و داده رو داخل دیتابیس ذخیره کنن . این پروژه کاملاً روی سیستم و داخل برنامه ویژوال استدیو اجرا میشه و بدون هیچ خطایی میشه ازش استفاده کرد .
اما حالا که روی سرور بارگذاری شده ، موقع لاگین اطلاعاتو با دیتابیس چک میکنه و بدون مشکل وارد سایت میشه ولی موقع ثبت رکورد توی دیتابیس خطای ExecuteNonQuery میده .

میخواستم راهنماییم کنید و بگید مشکلم چجوری برطرف میشه ، خیلی ممنونم
درضمن دیتابیس اکسس 2003 است

شرلوک هلمز
یک شنبه 29 شهریور 1394, 17:40 عصر
احتمالا مشکل از permission است.
لاگین را چطوری ایجاد کردی؟

keyjaa
دوشنبه 30 شهریور 1394, 11:59 صبح
احتمالا مشکل از permission است.
لاگین را چطوری ایجاد کردی؟

دوست گرامی ؛ برای لاگین از کد زیر استفاده شده :


Protected Sub cmdLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdLogin.Click
Dim Con As New OleDbConnection
Dim Cmd As New OleDbCommand
Dim drr As OleDbDataReader
Dim Result As String = -1
Con.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|/jaadb.mdb;Persist Security Info=True")
Cmd.Connection = Con
Cmd.CommandText = String.Format("SELECT * FROM Users WHERE Uid='{0}' AND Pass='{1}'", txtUid.Text.ToLower, txtPwd.Text.ToLower)
Con.Open()
drr = Cmd.ExecuteReader
If (drr.Read()) Then
Result = CType(drr("Name2"), String)
Session("Name2") = Result
FormsAuthentication.RedirectFromLoginPage(txtUid.T ext.ToLower, False)
Response.Redirect("~/AdminPanel/Default.aspx")
Else
lblError.Visible = True
txtUid.Text = ""
txtUid.Focus()
End If
Con.Close()
drr.Close()
End Sub


برای ذخیره اطلاعات در دیتابیس هم از کد زیر :


Protected Sub cmdSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdSave.Click
Dim Conn As String = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|/jaadb.mdb;Persist Security Info=True")
Dim Cmd As New OleDbCommand("INSERT INTO NMHA (tblNo, Fname, Lname, FaName, CM, Tel, Mob, Subject, HAdress, Adress2, UTM1, UTM2, PS, BS, NoPM, NoPE, NoSSAA, NoGh, PoweredBy, DateSaved)VALUES('" & lblTableNo.Text & "','" & txtFname.Text & "','" & txtLname.Text & "','" & txtFaName.Text & "','" & txtCM.Text & "','" & txtTel.Text & "','" & txtMob.Text & "','" & txtSubject.Text & "','" & txtHAdress.Text & "','" & txtAdress2.Text & "','" & txtUTM1.Text & "','" & txtUTM2.Text & "','" & txtPS.Text & "','" & txtBS.Text & "','" & txtNoPM.Text & "','" & txtNoPE.Text & "','" & txtNoSSAA.Text & "','" & lblNoGh.Text & "','" & lblPBy.Text & "','" & lblDate.Text & "')", New OleDbConnection(Conn))
Cmd.Connection.Open()
Cmd.ExecuteNonQuery()
Cmd.Connection.Close()
Panel1.Visible = False
Panel2.Visible = True
End Sub


قابل ذکر مجدد ، کدهای بالا روی سیستم و داخل برنامه هیچ مشکلی نداره ، روی هاست خطایی که عرض کردم میده!
خیلی ممنون میشم کمکم کنید تا این مشکل برطرف بشه ....

پیام حیاتی
دوشنبه 30 شهریور 1394, 12:26 عصر
کدها رو اول در نوت پد کپی کنید بعد در اینجا قرار بدید الآن استایل های فونت و ... با کد قاطی شده خواندنش سخت هست.

keyjaa
دوشنبه 30 شهریور 1394, 12:38 عصر
کدها رو اول در نوت پد کپی کنید بعد در اینجا قرار بدید الآن استایل های فونت و ... با کد قاطی شده خواندنش سخت هست.



Imports Microsoft.VisualBasic
Imports System.Globalization.PersianCalendar
Imports System.Data
Imports System.Data.OleDb

Partial Class Admin_N_MHA
Inherits System.Web.UI.Page
Protected Sub cmdLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdLogin.Click
Dim Con As New OleDbConnection
Dim Cmd As New OleDbCommand
Dim drr As OleDbDataReader
Dim Result As String = -1
Con.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|/jaadb.mdb;Persist Security Info=True")
Cmd.Connection = Con
Cmd.CommandText = String.Format("SELECT * FROM Users WHERE Uid='{0}' AND Pass='{1}'", txtUid.Text.ToLower, txtPwd.Text.ToLower)
Con.Open()
drr = Cmd.ExecuteReader
If (drr.Read()) Then
Result = CType(drr("Name2"), String)
Session("Name2") = Result
FormsAuthentication.RedirectFromLoginPage(txtUid.T ext.ToLower, False)
Response.Redirect("~/AdminPanel/Default.aspx")
Else
lblError.Visible = True
txtUid.Text = ""
txtUid.Focus()
End If
Con.Close()
drr.Close()
End Sub
End Class


و




Imports Microsoft.VisualBasic
Imports System.Globalization.PersianCalendar
Imports System.Data
Imports System.Data.OleDb

Partial Class Admin_N_MHA
Inherits System.Web.UI.Page
Protected Sub cmdSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdSave.Click
Dim Conn As String = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|/jaadb.mdb;Persist Security Info=True")
Dim Cmd As New OleDbCommand("INSERT INTO NMHA (tblNo, Fname, Lname, FaName, CM, Tel, Mob, Subject, HAdress, Adress2, UTM1, UTM2, PS, BS, NoPM, NoPE, NoSSAA, NoGh, PoweredBy, DateSaved)VALUES('" & lblTableNo.Text & "','" & txtFname.Text & "','" & txtLname.Text & "','" & txtFaName.Text & "','" & txtCM.Text & "','" & txtTel.Text & "','" & txtMob.Text & "','" & txtSubject.Text & "','" & txtHAdress.Text & "','" & txtAdress2.Text & "','" & txtUTM1.Text & "','" & txtUTM2.Text & "','" & txtPS.Text & "','" & txtBS.Text & "','" & txtNoPM.Text & "','" & txtNoPE.Text & "','" & txtNoSSAA.Text & "','" & lblNoGh.Text & "','" & lblPBy.Text & "','" & lblDate.Text & "')", New OleDbConnection(Conn))
Cmd.Connection.Open()
Cmd.ExecuteNonQuery()
Cmd.Connection.Close()
Panel1.Visible = False
Panel2.Visible = True
End Sub
End Class

شرلوک هلمز
دوشنبه 30 شهریور 1394, 19:20 عصر
شما ظاهرا در لاگین مشکلی نداری دلیل آنهم این است که از select که عمل خواندن را انجام می دهد استفاده میکنید.
شما باید در محلی که دیتابیس را قرار دادید permisson لازم برای عمل نوشتن را اضافه کنید به عبارت ساده تر فولدری که دیتابیس در آن قرار دارد باید اجازه نوشتن اطلاعات را به شما بدهد.
در کنترل پنل هاست شما باید قسمتی باشد که این کار را بتوان انجام داد .چون من نمیدانم از چه هاستی استفاده میکنید نمی توانم بیشتر از این راهنمایی کنم اما در plesk اینکار خیلی ساده است.
شما میتوانید از قسمت راهنمایی هاست کمک بگیرید. در ضمن کنترل پنل های هاست برای امنیت بطور پیش فرض به شما اجازه نوشتن را نمی دهند. با کدها و توضیحاتی که دادید به نظر میرسد مشکل همین مورد است.