PDA

View Full Version : درخواست کمک درمورد وبسایت آزمون گیر



B.I.O.H.A.Z.A.R.D
شنبه 10 مرداد 1388, 11:28 صبح
با سلام خدمت اساتید بزرگ
در حال نوشتن پروژه وبسایت آزمون گیر هستم، و مشکلی در قسمت درج درس دارم.
قطعه کد زیر رو ببینید

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Main.aspx.vb" Inherits="AZMOON.Main" MasterPageFile="~/MasterPage.master" Title="Untitled Page"%>
<%@ Import Namespace ="system.data" %>
<%@ Import Namespace ="system.data.sqlclient"%>
<script runat="server">
Sub Page_Load()
Dim conMajorCode As SqlConnection
Dim cmdSelect As SqlCommand
Dim dtrMajorCode As SqlDataReader

conMajorCode = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=azmoon")
cmdSelect = New SqlCommand("Select majorCode,majorName From majors", conMajorCode)
conMajorCode.Open()
dtrMajorCode = cmdSelect.ExecuteReader()

ddListMajorCode.DataSource = dtrMajorCode
ddListMajorCode.DataTextField = "majorName"
ddListMajorCode.DataValueField = "majorCode"

ddListMajorCode.DataBind()

dtrMajorCode.Close()
conMajorCode.Close()
End Sub

Protected Sub btnAdd_Click(ByVal s As Object, ByVal e As EventArgs)
Dim conAdd As SqlConnection
Dim cmdAdd As SqlCommand

conAdd = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=azmoon")
cmdAdd = New SqlCommand("INSERT into lessons(lessonCode,lessonName,majorCode,lessonType ,lessonStatus) values (@lessonCode,@lessonName,@majorCode,@lessonType,@l essonStatus)", conAdd)
cmdAdd.Parameters.Add("@lessonCode", SqlDbType.Int).Value = txtLessonCode.Text
cmdAdd.Parameters.Add("@lessonName", SqlDbType.Char).Value = txtLessonName.Text
cmdAdd.Parameters.Add("@majorCode", SqlDbType.Int).Value = ddListMajorCode.SelectedItem.Value
cmdAdd.Parameters.Add("@lessonType", SqlDbType.Char).Value = ddListLessonType.SelectedItem.Text
cmdAdd.Parameters.Add("@lessonStatus", SqlDbType.Bit).Value = ddListLessonStatus.SelectedItem.Text
conAdd.Open()
cmdAdd.ExecuteNonQuery()
conAdd.Close()
txtLessonName.Text = ""
End Sub
Sub BindDataList()
Dim conView As SqlConnection
Dim cmdView As SqlCommand
Dim dtrView As SqlDataReader
conView = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=azmoon")
cmdView = New SqlCommand("Select * from lessons", conView)
conView.Open()
dtrView = cmdView.ExecuteReader
dlstView.DataSource = dtrView
dlstView.DataBind()
dtrView.Close()
conView.Close()
End Sub


Protected Sub dlstEditCommand(ByVal s As Object, ByVal e As DataListCommandEventArgs)
dlstView.EditItemIndex = e.Item.ItemIndex
BindDataList()
End Sub

Protected Sub dlstCancelCommand(ByVal s As Object, ByVal e As DataListCommandEventArgs)
dlstView.EditItemIndex = -1
BindDataList()
End Sub

Protected Sub dlstDeleteCommand(ByVal s As Object, ByVal e As DataListCommandEventArgs)
Dim conAzmoon As SqlConnection
Dim strDelete As String
Dim cmdDelete As SqlCommand
Dim lessonCode As Integer

lessonCode = dlstView.DataKeys(e.Item.ItemIndex)
conAzmoon = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=azmoon")
strDelete = "Delete from lessons Where lessonCode=@lessonCode"
cmdDelete = New SqlCommand(strDelete, conAzmoon)
cmdDelete.Parameters.Add("@lessonCode", SqlDbType.Int).Value = lessonCode.ToString
conAzmoon.Open()
cmdDelete.ExecuteNonQuery()
conAzmoon.Close()
dlstView.EditItemIndex = -1
BindDataList()
End Sub

Protected Sub dlstUpdateCommand(ByVal s As Object, ByVal e As DataListCommandEventArgs)
Dim conAzmoon As SqlConnection
Dim strUpdate As String
Dim cmdUpdate As SqlCommand
Dim lessonCode As Integer
Dim lessonName As TextBox
Dim majorCode As Label
Dim lessonType As DropDownList
Dim lessonStatus As DropDownList


lessonCode = dlstView.DataKeys(e.Item.ItemIndex)
lessonName = e.Item.FindControl("txtLessonName")
majorCode = e.Item.FindControl("lblMajorCode")
lessonType = e.Item.FindControl("ddListLessonType")
lessonStatus = e.Item.FindControl("ddListLessonStatus")
conAzmoon = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=azmoon")
strUpdate = "Update lessons Set lessonName=@lessonName, majorCode=@majorCode, lessonType=@lessonType, lessonStatus=@lessonStatus Where lessonCode=@lessonCode"
cmdUpdate = New SqlCommand(strUpdate, conAzmoon)
cmdUpdate.Parameters.Add("@lessonCode", SqlDbType.Int).Value = lessonCode.ToString
cmdUpdate.Parameters.Add("@lessonName", SqlDbType.Char).Value = lessonName.Text
cmdUpdate.Parameters.Add("@majorCode", SqlDbType.Int).Value = majorCode.Text
cmdUpdate.Parameters.Add("@lessonType", SqlDbType.Char).Value = lessonType.SelectedItem.Text
cmdUpdate.Parameters.Add("@lessonStatus", SqlDbType.Bit).Value = lessonStatus.SelectedItem.Text
conAzmoon.Open()
cmdUpdate.ExecuteNonQuery()
conAzmoon.Close()
dlstView.EditItemIndex = -1
BindDataList()
End Sub


</script>
<asp:Content ID="Content1" ContentPlaceHolderID="plcMaster" Runat="Server">
<form id="form1" runat="server">

<p style="direction: rtl; margin-right: 0px; width: 626px; text-align: right;"
class="style14">
نام درس:
<asp:TextBox ID="txtLessonName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtLessonName"
ErrorMessage="لطفاً نام درس را وارد نمایید" Font-Size="Small" ValidationGroup="1" ForeColor="Yellow"></asp:RequiredFieldValidator><br />
کد درس:
&nbsp;<asp:TextBox ID="txtLessonCode" runat="server"></asp:TextBox><br/>
کد رشته:
<asp:DropDownList
ID="ddListMajorCode"
Runat="Server" /><br />

نوع درس:
<asp:DropDownList ID="ddListLessonType" runat="server">
<asp:ListItem Text="عمومی" />
<asp:ListItem Text="تخصصی" />
<asp:ListItem Text="پایه" />
</asp:DropDownList><br />

وضعیت درس:
<asp:DropDownList ID="ddListLessonStatus" runat="server">
<asp:ListItem Text="True" />
<asp:ListItem Text="False" />
</asp:DropDownList><br />
<br /><asp:Button ID="btnAdd" Text="افزودن درس" OnClick="btnAdd_Click"
runat="server" Width="146px" ValidationGroup="1" />
<br /><br /><asp:Button ID="btnShow" OnClick="BindDataList" Text="نمایش رشته ها"
runat="server" Width="145px" />

&nbsp; &nbsp;</p>
<p style="direction: rtl; margin-right: 0px; width: 626px; text-align: center;" class="style14">
<asp:DataList
DataKeyField="lessonCode"
ID="dlstView"
runat="server"
ForeColor="White"
CellPadding="10"
CellSpacing="20"
ItemStyle-BorderStyle="Dotted"
AlternatingItemStyle-BackColor="Cornsilk"
ItemStyle-BackColor="Cyan"
RepeatColumns="4"
RepeatDirection ="Horizontal"
OnEditCommand="dlstEditCommand"
OnCancelCommand="dlstCancelCommand"
OnDeleteCommand="dlstDeleteCommand"
OnUpdateCommand="dlstUpdateCommand"
GridLines="Both"
>
<ItemTemplate>
کد درس: <%#Container.DataItem("lessonCode")%><br />
نام درس: <%#Container.DataItem("lessonName")%><br />
کد رشته: <%#Container.DataItem("majorCode")%><br />
نوع درس: <%#Container.DataItem("lessonType")%><br />
وضعیت رشته: <%#Container.DataItem("lessonStatus")%><br />
<asp:Button ID="Button1"
Text="ویرایش"
CommandName="edit"
Runat="Server" />
<br />
</ItemTemplate>
<EditItemTemplate>
<b>کد درس:</b>
<br>
<asp:Label
ID="txtLessonCode"
Text='<%# Container.DataItem( "lessonCode" )%>'
Runat="Server" />
<p>
<b>کد رشته:</b>
<asp:Label
ID="lblMajorCode"
Text='<%# Container.DataItem( "majorCode" )%>'
Runat="Server" />
<p>
<b>نام درس:</b>
<br>
<asp:TextBox
ID="txtLessonName"
Text='<%# Container.DataItem( "lessonName" )%>'
Runat="Server" /><asp:RequiredFieldValidator ID="rfv1" ControlToValidate="txtLessonName" ErrorMessage="لطفاً نام درس را وارد نمایید" runat ="server" />

<p>
<b>نوع درس:</b>
<br>
<asp:DropDownList ID="ddListLessonType" runat="server">
<asp:ListItem Text="تخصصی" />
<asp:ListItem Text="عمومی" />
<asp:ListItem Text="پایه" />
</asp:DropDownList>
<br />
<b>وضعیت درس:</b>
<br>
<asp:DropDownList ID="ddListLessonStatus" runat="server">
<asp:ListItem Text="True" />
<asp:ListItem Text="False" />
</asp:DropDownList>
<br />
<asp:Button ID="Button2"
Text="بروزرسانی"
CommandName="update"
Runat="Server" />
<asp:Button ID="Button3"
Text="حذف"
CommandName="delete"
Runat="Server" />
<asp:Button ID="Button4"
Text="انصراف"
CommandName="cancel"
Runat="Server" />

</EditItemTemplate>

</asp:DataList>
</p>
</form>

</asp:Content>مشکلم اینجاست که نمی تونم نام رشته ها (از جدول رشته ها) رو هنگام درج درس در کنترل DropDownList به نام ddListMajorCode بریزم که هنگام درج سوال مدیر سایت بتونه رشته درس مورد نظر رو هم مشخص کنه. البته همین قطعه کد مقید کردن داده از بانک به DropDownList هستش رو در صفحه ای دیگر تست کردم، جواب داد. نمیدونم چرا تواین صفحه که تحت masterPage هستش جواب نمیده. لطفاً کمک کنید که ببینم مشکل کجاست.

دوم اینکه چطوری میتونم از درج داده تکراری (مثلا داده تکراری در فیلد کد درس) جلوگیری کنم.

ممنون میشم اگه راهنمایی بفرمایین.

B.I.O.H.A.Z.A.R.D
شنبه 10 مرداد 1388, 19:12 عصر
یه جورایی مشکل اولم حل شد.
لطفاً یکی به سوال دوم بنده پاسخ بده.
اینکه در صفحه وب، چطور از درج داده تکراری در بانک جلوگیری کنم؟؟

با تشکر

Reza_Yarahmadi
شنبه 10 مرداد 1388, 23:10 عصر
چطوری میتونم از درج داده تکراری (مثلا داده تکراری در فیلد کد درس) جلوگیری کنم.
اگر نمیخوای داده تکراری وارد بشه فیلد مورد نظرت رو به عنوان کلید اصلی قرار بده خودبخود از ورود داده تکراری جلوگیری میشه.
اگر هم کلید اصلی داری و میخوای فیلد دیگه ای هم تکراری نباشه قبل وارد کردن داده جدید اول یه جستجو توی بانک کن اگر داده ای وجود داشت که یعنی تکراریه!! اگر هم نبود که میتونی با خیال راحت! درج کنی.

kiani_behzad
شنبه 10 مرداد 1388, 23:36 عصر
یه جورایی مشکل اولم حل شد.
لطفاً یکی به سوال دوم بنده پاسخ بده.
اینکه در صفحه وب، چطور از درج داده تکراری در بانک جلوگیری کنم؟؟

با تشکر
کافیه فیلدی که نمیخوایی داده تکراری داشته باشه رو به صورت unique تعریف کنی به همین راحتی. دیگه نیازی به serach توی بانک هم نداری خود DBMS جلوی درج داده تکراری رو میگیره م میتونی یک پیغام خطای مناسب هم برای کاربر بذاری.

B.I.O.H.A.Z.A.R.D
یک شنبه 11 مرداد 1388, 10:15 صبح
اگر نمیخوای داده تکراری وارد بشه فیلد مورد نظرت رو به عنوان کلید اصلی قرار بده خودبخود از ورود داده تکراری جلوگیری میشه.
اگر هم کلید اصلی داری و میخوای فیلد دیگه ای هم تکراری نباشه قبل وارد کردن داده جدید اول یه جستجو توی بانک کن اگر داده ای وجود داشت که یعنی تکراریه!! اگر هم نبود که میتونی با خیال راحت! درج کنی.

با تشکر از پاسختون
فیلد مورد نظر من تو بانک اطلاعاتی به عنوان کلید اصلی انتخاب شده، فقط مشکل اینجاست که تو صفحه وب در فرم ثبت درس (مثلاً فیلد کد درسی) اگه داده تکراری وارد بشه، نمیدونم چطوری به اونی که فرم رو پر میکنه پیغام مناسب بدم که آقا داده تکراری وارد کردی!! در ضمن شما یه نمونه کد اگه بذارین ممنون میشم.(برای سرچ کردن در بانک)


کافیه فیلدی که نمیخوایی داده تکراری داشته باشه رو به صورت unique تعریف کنی به همین راحتی. دیگه نیازی به serach توی بانک هم نداری خود DBMS جلوی درج داده تکراری رو میگیره م میتونی یک پیغام خطای مناسب هم برای کاربر بذاری.

از شما هم ممنونم
دوباره میگم که فیلد های مورد نظر کلید هستند، مشکل من نمایش پیغام مناسب به کاربر است. شما اگه لطف کنی یه نمونه کد بذاری که بدون سرچ کردن تو بانک بتونم به کاربر پیغام مناسب نمایش بدم، ممنون میشم.

kiani_behzad
یک شنبه 11 مرداد 1388, 11:07 صبح
از شما هم ممنونم
دوباره میگم که فیلد های مورد نظر کلید هستند، مشکل من نمایش پیغام مناسب به کاربر است. شما اگه لطف کنی یه نمونه کد بذاری که بدون سرچ کردن تو بانک بتونم به کاربر پیغام مناسب نمایش بدم، ممنون میشم.
برای دادن پیغام مناسب میتونی از بحث اداره کردن استثنا استفاده کنی من یک نمونه کد سی شارپ میذارم:




try
{}
catch{}



دستوراتی که داری باهاشون داده رو در بانک درج میکنی رو توی بلاک tru بذار و کافیه دستورات پیغام مناسب رو هم توی بلاک catch بذاری اینجوری هر وقت داده تکراری بیاد بلاک catch اجرا میشه و پیغام مناسب رو نشون میده. اگه هم تکراری نباشه فقط بلاک try اجرا میشه.
موفق باشی.

Reza_Yarahmadi
یک شنبه 11 مرداد 1388, 11:30 صبح
نمیدونم چطوری به اونی که فرم رو پر میکنه پیغام مناسب بدم که آقا داده تکراری وارد کردی
یه راه ساده اینه که یه لیبل کنار فیلد مورد نظرت و یا هر جایی که به نظرت مناسبه بذاری، خاصیت Visible اونو False کنی و کدی مثل کد زیر رو بنویسی

try { Cmd.ExecuteNonQuery(); }
catch { label1.Visible = true; }


در ضمن شما یه نمونه کد اگه بذارین ممنون میشم.(برای سرچ کردن در بانک)

SqlDataReader DR;
SqlCommand Cmd = new SqlCommand();
Cmd.CommandText = "Select * From TableName Where Field1 Like @Value";
Cmd.Parameters.AddWithValue("@Value", textBox1.Text);
Cmd.Connection = Conn;
Conn.Open();
DR = Cmd.ExecuteReader();
if (!DR.Read())
{
//Commands For Insert New Record
}
else
{
//This Value Is Existing
// Sample "label1.Visible = false;"
}

farnooshhp
یک شنبه 11 مرداد 1388, 11:31 صبح
http://www.barnamenevis.org/forum/showthread.php?p=761446
اینجا در موردش بحث شده با این تفاوت که با زبان دلفی کار شده که در سی شارپ از این فرمت استفاده میشه :


try
{
...
}
catch(Exeption e)
{
MessageBox.Show(e.Message);
}

هر خطا یک کد دارد که شما باید کد مربوط به خطای داده تکراری را پیدا کرده در اینجا به کار ببرید

B.I.O.H.A.Z.A.R.D
یک شنبه 11 مرداد 1388, 11:58 صبح
از همگی بابت راهنمایی تون ممنونم.:تشویق::تشویق::تشویق:

B.I.O.H.A.Z.A.R.D
دوشنبه 12 مرداد 1388, 18:05 عصر
سلام
لطفاً یکی کمک کنه ببینم مشکل این کد چیه

Protected Sub btnAdd_Click(ByVal s As Object, ByVal e As EventArgs)
Dim conAdd As SqlConnection
Dim cmdAdd As SqlCommand
conAdd = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=azmoon")
cmdAdd = New SqlCommand("INSERT into lessons(lessonCode,lessonName,majorCode,lessonType ,lessonStatus) values (@lessonCode,@lessonName,@majorCode,@lessonType,@l essonStatus)", conAdd)
cmdAdd.Parameters.Add("@lessonCode", SqlDbType.Int).Value = txtLessonCode.Text
cmdAdd.Parameters.Add("@lessonName", SqlDbType.Char).Value = txtLessonName.Text
cmdAdd.Parameters.Add("@majorCode", SqlDbType.Int).Value = ddListMajorCode.SelectedItem.Value
cmdAdd.Parameters.Add("@lessonType", SqlDbType.Char).Value = ddListLessonType.SelectedItem.Text
cmdAdd.Parameters.Add("@lessonStatus", SqlDbType.Bit).Value = ddListLessonStatus.SelectedItem.Text
conAdd.Open()
cmdAdd.ExecuteNonQuery()
conAdd.Close()
txtLessonName.Text = ""
End Sub که میگه:


string or binary data would be truncated. the statement has been terminated

این کد قراره که یه درس جدید رو به DATABASE اضافه کنه. سر اون خط که قرمزش کردم، گیر میکنه. هر کاری کردم خطا رو رفع کنم نشد که نشد.

بهنام بهمنی
دوشنبه 12 مرداد 1388, 18:13 عصر
طول مقدار یکی از فیلدهات از مقداری که بهش پاس دادی کوتاه تره مثلا فیلد نام از نوع کارکتری 20 تایی تعریف کردی اما میخوای یک نام 25 حرفی بهش پاس بدی

B.I.O.H.A.Z.A.R.D
دوشنبه 12 مرداد 1388, 18:16 عصر
طول مقدار یکی از فیلدهات از مقداری که بهش پاس دادی کوتاه تره مثلا فیلد نام از نوع کارکتری 20 تایی تعریف کردی اما میخوای یک نام 25 حرفی بهش پاس بدی

اینهمه من تستش کردم، یه مقدار متفاوت ندادم بهش. درسته ایرادش همین بود. آقا چقدر سریع جواب دادی.:تشویق:

ممنونم

B.I.O.H.A.Z.A.R.D
پنج شنبه 15 مرداد 1388, 08:57 صبح
با سلام خدمت اساتید محترم
می خواستم ببینم تو visual studio 2008 چیزی مثل command dialog در vb داریم.
برای قسمتی از پروژه ام می خواستم URL فایلی رو در بانک اطلاعاتی (عکس، صوت و ...) ذخیره کنم،
بدین صورت که کاربر توسط یک textBox یا حالا کنترل دیگه ای که من نمی شناسم، مسیر اون فایل رو بده که اون مسیر در بانک اطلاعاتی ذخیره بشه، بعد در جای دیگه خواستم از مسیر اون فایل ها برای نمایش اونا استفاده کنم.

پیشاپیش ممنونم

Reza_Yarahmadi
پنج شنبه 15 مرداد 1388, 10:37 صبح
می خواستم ببینم تو visual studio 2008 چیزی مثل command dialog در vb داریم.
برای قسمتی از پروژه ام می خواستم URL فایلی رو در بانک اطلاعاتی (عکس، صوت و ...) ذخیره کنم،
بدین صورت که کاربر توسط یک textBox یا حالا کنترل دیگه ای که من نمی شناسم، مسیر اون فایل رو بده که اون مسیر در بانک اطلاعاتی ذخیره بشه، بعد در جای دیگه خواستم از مسیر اون فایل ها برای نمایش اونا استفاده کنم.
فکر کنم کامپوننت FileUpload کارتون رو راه بندازه.

B.I.O.H.A.Z.A.R.D
پنج شنبه 15 مرداد 1388, 11:37 صبح
فکر کنم کامپوننت FileUpload کارتون رو راه بندازه.

من طرز استفاده از این کامپوننت رو نمیدونم. اگه بیشتر توضیح بدید، ممنون میشم.

کدی که خودم واسه آپلود نوشتم، چند تا مشکل داره،

1- یک فایل بیشتر نمیشه آپلود کرد (فایل بعدی جایگزین قبلی میشه) البته این زیاد مهم نیست
2- نمی دونم چطوری مسیرش رو تو بانک ذخیره کنم. کد زیر رو ببینید متوجه میشید.


آپلود:
Sub btnUpload_Click(ByVal s As Object, ByVal e As EventArgs)
inpFileUp.PostedFile.SaveAs("C:\Inetpub\wwwroot\AZMOON\AZMOON\AZMOON\NewFile.gi f")
End Sub

برای add کردن تو بانک
cmdAdd.Parameters.Add("@questionImage", SqlDbType.NVarChar).Value = txtImageURL.Text

دکمه واسه Upload
<br />
فایل: <input id="inpFileUp" type="file" runat="server" /> <asp:Button Text="Upload" OnClick="btnUpload_Click" runat="server" />
<br />


به جای txtImageURL.text چی بنویسم؟

با تشکر از پاسختون

Reza_Yarahmadi
پنج شنبه 15 مرداد 1388, 16:56 عصر
FileUpload1.SaveAs("C:\\Inetpub\\wwwroot\\WebApplication1\\"+FileUpload1.FileName);
تنها نکته در مورد این متد ، کامل بودن مسیری است که باید فایل قرار گیرد.
الزامی نیست که فایل در یکی از زیر دایرکتوریهای پروژه قرار بگیره هر جای دیگه ای هم میتونی قرارش بدی.

B.I.O.H.A.Z.A.R.D
پنج شنبه 15 مرداد 1388, 18:28 عصر
FileUpload1.SaveAs("C:\\Inetpub\\wwwroot\\WebApplication1\\"+FileUpload1.FileName);تنها نکته در مورد این متد ، کامل بودن مسیری است که باید فایل قرار گیرد.
الزامی نیست که فایل در یکی از زیر دایرکتوریهای پروژه قرار بگیره هر جای دیگه ای هم میتونی قرارش بدی.
فکر کنم منظور من رو متوجه نشدین.
برای من جای فایل مهم نیست. مهم اینه که توی فیلد ImageURL در جدول سوالات در بانک Sql
مسیر فایل آپلود شده قرار بگیره. این مسیر رو چطوری از طریق فرم صفحه وب بگیرم؟؟!!
که مثلاً در زمان نمایش سوالات به کاربر یه کنترل image بگذارم و مسیر عکس رو از بانک بازیابی کنم که اون عکس نمایش داده بشه. همین!

Reza_Yarahmadi
پنج شنبه 15 مرداد 1388, 19:38 عصر
میشه بیشتر توضیح بدید.
در ASP شما فقط مجاز به استفاده از فایلهایی هستید که یا روی سرور خودتون آپلود شده و یا روی سرور دیگه ای. اگر روی سرور خودتون آپلود شده (مثل همین مثال) آدرس فایل رو دارید و میتونید توی بانک ذخیره کنید اگر هم روی سرور دیگه ی هست که باید زمان انتخاب کردن فایل آدرس اون فایل رو دستی وارد کنید.
اگر دقیقا توضیح بدید قصد چه کاری و به چه نحوی رو دارید بهتر میشه کمک کرد.

B.I.O.H.A.Z.A.R.D
پنج شنبه 15 مرداد 1388, 20:11 عصر
میشه بیشتر توضیح بدید.
در ASP شما فقط مجاز به استفاده از فایلهایی هستید که یا روی سرور خودتون آپلود شده و یا روی سرور دیگه ای. اگر روی سرور خودتون آپلود شده (مثل همین مثال) آدرس فایل رو دارید و میتونید توی بانک ذخیره کنید اگر هم روی سرور دیگه ی هست که باید زمان انتخاب کردن فایل آدرس اون فایل رو دستی وارد کنید.
اگر دقیقا توضیح بدید قصد چه کاری و به چه نحوی رو دارید بهتر میشه کمک کرد.

من دارم پروژه ام رو تحت ASP.NET می نویسم.
کد زیر رو ببینید، کاری که می خواستم انجام بدم رو تا حدودی انجامش دادم، فقط نام فایل رو نمی تونم همونی که هست، ذخیره کنم. راهنمایی کنید چیکارش کنم؟؟


Sub btnUpload_Click(ByVal s As Object, ByVal e As EventArgs)
Dim fileName As String

fileName = inpFileUp.PostedFile.FileName
inpFileUp.PostedFile.SaveAs("C:\Inetpub\wwwroot\AZMOON\AZMOON\AZMOON\" + 'fileName')
txtImageURL.Text = fileName
End Sub
با تشکر

B.I.O.H.A.Z.A.R.D
پنج شنبه 15 مرداد 1388, 20:35 عصر
من دارم پروژه ام رو تحت ASP.NET می نویسم.
کد زیر رو ببینید، کاری که می خواستم انجام بدم رو تا حدودی انجامش دادم، فقط نام فایل رو نمی تونم همونی که هست، ذخیره کنم. راهنمایی کنید چیکارش کنم؟؟


Sub btnUpload_Click(ByVal s As Object, ByVal e As EventArgs)
Dim fileName As String

fileName = inpFileUp.PostedFile.FileName
inpFileUp.PostedFile.SaveAs("C:\Inetpub\wwwroot\AZMOON\AZMOON\AZMOON\" + 'fileName')
txtImageURL.Text = fileName
End Sub
با تشکر
مشکلم حل شد، باید کد رو اینطوری تغییر میدادم.


fileName = inpFileUp.PostedFile.FileName
inpFileUp.PostedFile.SaveAs("C:\Inetpub\wwwroot\AZMOON\AZMOON\AZMOON\" + (fileName) + "")
txtImageURL.Text = fileName

B.I.O.H.A.Z.A.R.D
یک شنبه 18 مرداد 1388, 11:36 صبح
با سلام خدمت اساتید محترم

تقریباً 50 درصد پروژه آزمون گیر رو انجام دادم، فقط قسمت اصلی پروژه یعنی شروع آزمون، محاسبه پاسخ های کاربر و ثبت آن در Sql باقی مونده. یه راهنمایی می خواستم درباره اینکه برای آزمون از DataSet باید استفاده کنم؟ کلاً چطوری میشه پاسخ های کاربر رو محاسبه کنم؟ از چه کنترل هایی باید استفاده کنم.

یه چیزایی خودم نوشتم، یه DropDownList گذاشتم واسه انتخاب رشته، یکی واسه درس، بعد یکی هم واسه انتخاب سختی، معمولی و یا آسون بودن آزمون. می خوام تو هر صفحه 10 سوال ظاهر بشه، پاسخ ها هم 4 گزینه ای و از RadioButton استفاده کردم.

ممنون میشم یه راهنمایی جامع بفرمایید.

B.I.O.H.A.Z.A.R.D
دوشنبه 19 مرداد 1388, 18:49 عصر
کسی نبود یه راهکار به من بگه. تو رو خدا یکی کمک کنه، وقتی نمونده ها

B.I.O.H.A.Z.A.R.D
سه شنبه 20 مرداد 1388, 13:42 عصر
یه تابع نوشتم برای انتخاب سوالات تصادفی از جدول سوالات sql به این صورت:

Sub addrandom()
Dim ii, a1 As Integer
randomquestionrow = randomquestion.NewRow()
Dim pr As Integer = allquestion.Rows.Count - 1
'MsgBox(pr)
randomquestionrow("index") = Int(pr) * Rnd() - 1
randomquestion.Rows.Add(randomquestionrow)
ii = 1

Dim xza As Integer
xza = 1
'MsgBox(pr)
Do While ii < 6
xza = Int(pr) * Rnd() + 1
randomquestionrow = randomquestion.Rows(ii - 1)
a1 = randomquestionrow("index")
If xza <> a1 Then
'MsgBox(pr)
randomquestionrow = randomquestion.NewRow()
randomquestionrow("index") = xza
randomquestion.Rows.Add(randomquestionrow)
ii = ii + 1
End If

Loop

End Sub
ولی یه خطایی تولی میکنه اونم مربوط به این خطه:

allquestionrow = allquestion.Rows(randomquestionrow("index"))
که میگه:
there is no row at position 0

ممنون میشم یکی راهنمایی کنه

B.I.O.H.A.Z.A.R.D
جمعه 23 مرداد 1388, 20:56 عصر
لطفاً یکی راهنمایی کنه برای رفع این error چی کار کنم؟؟

Reza_Yarahmadi
شنبه 24 مرداد 1388, 19:44 عصر
لطفاً یکی راهنمایی کنه برای رفع این error چی کار کنم؟؟
متوجه کدت نشدم یه مقدار توضیح میدادی بهتر بود!! :چشمک: ولی فکر کنم اگه دستور For رو تغییر بدی و از 0 تا 4 پیمایش کنی درست بشه!

B.I.O.H.A.Z.A.R.D
یک شنبه 25 مرداد 1388, 11:26 صبح
ممنونم. اون که حل شد. مشکلش همون 0 تا 4 بود.
مشکل جدیدم در مورد login کردن تو سایتِ. کد زیر رو ببینین:

Protected Sub btnLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim conLogin As SqlConnection
Dim cmdLogin As SqlCommand
Dim dtrLogin As SqlDataReader
Dim x As String
Dim y As Boolean
Dim z As String
conLogin = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=azmoon")
cmdLogin = New SqlCommand("select userUserName,userPassword,userType,userStatus from siteUsers where userUserName Like @user and userPassword Like @pass ", conLogin)
cmdLogin.Parameters.Add("@user", SqlDbType.Char).Value = txtUser.Text
cmdLogin.Parameters.Add("@pass", SqlDbType.Char).Value = txtPass.Text
conLogin.Open()
dtrLogin = cmdLogin.ExecuteReader

If dtrLogin.Read Then
txtUser.Text = dtrLogin("userUserName")
txtPass.Text = dtrLogin("userPassword")
Session("user") = dtrLogin("userUserName")
Session("status") = dtrLogin("userStatus")
Session("type") = dtrLogin("userType")
x = Session("user")
y = Session("status")
z = Session("type")
MsgBox(x)
MsgBox(y)
MsgBox(z)
If z = "admin" Or z = "ostad" Then
MsgBox("welcome")
Response.Redirect("~/admin.aspx")
Else
Response.Redirect("~/azmoon.aspx")
End If
Else
MsgBox("Wrong user name or password")
End If
conLogin.Close()
End Sub
همه session ها رو میسازم، همشون هم چک کردم درستن، ولی یه جا چک کردم اگر session مساوی ostad بود یا session مساوی admin بره صفحه admin.aspx که else اجرا میشه.
ایرادش چیه؟

Reza_Yarahmadi
یک شنبه 25 مرداد 1388, 12:30 عصر
به نظر کدتون درسته! توی کد نویسی مشکلی نیست فقط ممکنه توی بانک نوع استاد رو بصورت Ostad (حرف اول بزرگ) ذخیره کرده باشید و اینجا با ostad (حروف کوچیک) دارید مقایسه میکنید و این دوتا با هم مساوی نیستند در نتیجه شرط نادرست و else انجام میشه.
واسه رفع این مشکل پیشنهاد میکنم روی دستور if یک BreakPoint بذارید و زمان اجرا محتویات متغیرهاتون (مخصوصا z) رو چک کنید و ببینید مقدارهای مورد نظر شما رو دارن یا نه!

B.I.O.H.A.Z.A.R.D
یک شنبه 25 مرداد 1388, 14:07 عصر
به نظر کدتون درسته! توی کد نویسی مشکلی نیست فقط ممکنه توی بانک نوع استاد رو بصورت Ostad (حرف اول بزرگ) ذخیره کرده باشید و اینجا با ostad (حروف کوچیک) دارید مقایسه میکنید و این دوتا با هم مساوی نیستند در نتیجه شرط نادرست و else انجام میشه.
واسه رفع این مشکل پیشنهاد میکنم روی دستور if یک BreakPoint بذارید و زمان اجرا محتویات متغیرهاتون (مخصوصا z) رو چک کنید و ببینید مقدارهای مورد نظر شما رو دارن یا نه!

این کار رو هم کردم، اصلاً msgbox گذاشتم. ولی حداقل باید یکی از شرط ها درست بشه.
نوشتم که اگر user=admin or user=ostad بود بره صفحه admin.aspx ولی نمیره.
msgbox ها هم مقادیر رو درست نشون میدن. نمیدونم چه مرگشه :ناراحت:

B.I.O.H.A.Z.A.R.D
یک شنبه 25 مرداد 1388, 16:38 عصر
مشکل حل شد :خجالت:
نمیدونم چرا اینطوری شده ولی باید کد رو اینطوری می نوشتم:

If z = "admin " Or z = "ostad " Then
MsgBox("welcome")
Response.Redirect("~/admin.aspx")
باور کنید این space ها رو من نذاشته بودم:لبخند:


اگه پروژه رو تمومش کنم، میذارمش تو سایت همه استفاده کنن

B.I.O.H.A.Z.A.R.D
سه شنبه 27 مرداد 1388, 17:57 عصر
مثل اینکه این مشکلات منو ول نمی کنن.:افسرده:
مشکل صفحه login حل شده. session ها ساخته میشن درست هم redirect میکنن. ولی تو صفحه دیگه session مربوط به user رو که چک می کنم، مقدار session رو تو یه متغیر ریختم break point هم گذاشتم، مقدار session تغییر می کنه. مثلا با نوع کاربری admin که وارد میشم تو همون صفحه login مقدارش "admin " ولی تو صفحه دیگه همین session رو چک می کنم مقدارش a"c" هستش. یا مثلاً برای نوع کاربری دانشجو مقدارش d"c" میشه. مشکل چیه؟؟؟!!!

Reza_Yarahmadi
سه شنبه 27 مرداد 1388, 21:30 عصر
خب این مشکل از کد نویسی خودتونه!! :چشمک:
کدتون رو با دقت چک کنید ببینید جایی اشتباها مقدار Sessionها رو تغییر نمیدید. اگه به نتیجه رسیدید که هیچ ، اگر بازم نشد کد هر دو صفحه رو بذارید تا بشه کمک کرد.

B.I.O.H.A.Z.A.R.D
سه شنبه 27 مرداد 1388, 22:40 عصر
خب این مشکل از کد نویسی خودتونه!! :چشمک:
کدتون رو با دقت چک کنید ببینید جایی اشتباها مقدار Sessionها رو تغییر نمیدید. اگه به نتیجه رسیدید که هیچ ، اگر بازم نشد کد هر دو صفحه رو بذارید تا بشه کمک کرد.

session رو تو متغیر از نوع char میریختم که نوع متغیر رو به string تغییر دادم، درست شد.
آقا خیلی ممنونم که تاپیک منو دنبال میکنین. یه جورایی همه چیز رو با دوز و کلک حلش کردم.:چشمک:
تنها چیزی که از این پروژه مونده تایمره واسه آزمون، که سه، چهار روز دیگه بیشتر وقت ندارم ولی خدا کریمه :لبخندساده: اونم حل میشه. اگه در مورد تایمر خود visual studio مطلبی دارید، لطف کنید بذارید. چون اصلاً کار باهاش رو بلد نیستم:گریه:

Reza_Yarahmadi
چهارشنبه 28 مرداد 1388, 10:58 صبح
منم چیز زیادی در مورد تایمر نمیدونم چون تا الان استفاده ای واسم نداشته.
در این حد ازش میدونم که یکی از کامپوننتهای Ajax به شمار میره و واسه استفاده ازش باید علاوه بر اضافه کردن تایمر به صفحه ، باید یه ScriptManager هم به صفحه اضافه کرد. کدهایی که باید بعد از یه مدت زمان خاصی انجام بشه رو توی رویداد Tick تایمر می نویسن. خاصیت Interval تایمر هم مدت زمان مکث بین هر بار اجرا رو تعیین میکنه (بر حسب میلی ثانیه). برای فعال یا غیر فعال کردن تایمر هم از خاصیت Enabled استفاده میشه. روند کارش هم به این صورته که بعد از فعال سازی به اندازه Interval مکث میکنه بعد کدهای رویداد Tick رو انجام میده ، بعد از تموم شده کدها دوباره مکث و ...
پیشنهاد میکنم سؤالات رو توی یه UpdatePanel نمایش بدید. فرض کنید تعداد سؤالات زیاد باشه ، در این حالت مجبورید سؤالات رو طی چند مرحله نمایش بدید. اگر از UpdatePanel استفاده کنید نیازی نیست کل صفحه Refresh بشه و ... اینطوری ظاهر برنامه هم یه مقدار حرفه ایی تر میشه!! :متفکر:

B.I.O.H.A.Z.A.R.D
چهارشنبه 28 مرداد 1388, 11:12 صبح
آقا کارت خیلی درسته:تشویق:
تا همیجا هم که صفحه آزمون رو رسوندم، کلی عذاب کشیدم، الان بیام دست بزنم همه چی خراب میشه:قهقهه:
با کمک معلم دبیرستانمون نوشتمش. شما یه زحمت بکش. کد صفحه azmoon.aspx رو میذارم، توضیح بده چیکار کردم. واقعاً جدی میگما. خیلی پیچیدست نمیدونم چی به چیه:خجالت:

<%@ Import Namespace ="system.data" %>
<%@ Import Namespace ="system.data.sqlclient"%>
<script runat="server">

Public tblQuestion As DataTable
Public colQuestion As DataColumn
Public rowQuestion As DataRow

Public tblQuestion2 As DataTable
Public colQuestion2 As DataColumn
Public rowQuestion2 As DataRow

Public rndTblQuestion As DataTable
Public rndColQuestion As DataColumn
Public rndRowQuestion As DataRow

Dim rbAnswerA, rbAnswerB, rbAnswerC, rbAnswerD As RadioButton
Dim lblAnswerA, lblAnswerB, lblAnswerC, lblAnswerD, lblCorrectAnswer As Label
Dim img1 As Image

Dim dstQuestion As DataSet
Dim dadQuestion As SqlDataAdapter
Dim conQuestion As SqlConnection
Dim cmdQuestion As SqlCommand

'+++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++

Protected Sub Page_Load(ByVal s As Object, ByVal e As System.EventArgs) Handles Me.Load
If Session("type") = Nothing Then
MsgBox("ورود ممنوع", MsgBoxStyle.Critical, "Access Denied!")
Response.Redirect("~/Main.aspx")
End If
If Not IsPostBack Then
bindMajor()
End If
tblQuestion = New DataTable("tbl1")
colQuestion = New DataColumn("questionQuestion")
tblQuestion.Columns.Add(colQuestion)
'
colQuestion = New DataColumn("questionAnswerA")
tblQuestion.Columns.Add(colQuestion)
'
colQuestion = New DataColumn("questionAnswerB")
tblQuestion.Columns.Add(colQuestion)
'
colQuestion = New DataColumn("questionAnswerC")
tblQuestion.Columns.Add(colQuestion)
'
colQuestion = New DataColumn("questionAnswerD")
tblQuestion.Columns.Add(colQuestion)
'
colQuestion = New DataColumn("questionCorrectAnswer")
tblQuestion.Columns.Add(colQuestion)
'
colQuestion = New DataColumn("questionImage")
tblQuestion.Columns.Add(colQuestion)
'
colQuestion = New DataColumn("haveImage")
tblQuestion.Columns.Add(colQuestion)
'
colQuestion = New DataColumn("questionAudio")
tblQuestion.Columns.Add(colQuestion)
'
colQuestion = New DataColumn("CanPlay")
tblQuestion.Columns.Add(colQuestion)
'
colQuestion = New DataColumn("counter", GetType(Int32))
colQuestion.AutoIncrement = True
colQuestion.AutoIncrementSeed = 1
tblQuestion.Columns.Add(colQuestion)

'+++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++

tblQuestion2 = New DataTable("tbl2")
colQuestion2 = New DataColumn("questionQuestion")
tblQuestion2.Columns.Add(colQuestion2)
'
colQuestion2 = New DataColumn("questionAnswerA")
tblQuestion2.Columns.Add(colQuestion2)
'
colQuestion2 = New DataColumn("questionAnswerB")
tblQuestion2.Columns.Add(colQuestion2)
'
colQuestion2 = New DataColumn("questionAnswerC")
tblQuestion2.Columns.Add(colQuestion2)
'
colQuestion2 = New DataColumn("questionAnswerD")
tblQuestion2.Columns.Add(colQuestion2)
'
colQuestion2 = New DataColumn("questionCorrectAnswer")
tblQuestion2.Columns.Add(colQuestion2)
'
colQuestion2 = New DataColumn("questionImage")
tblQuestion2.Columns.Add(colQuestion2)
'
colQuestion2 = New DataColumn("haveImage")
tblQuestion2.Columns.Add(colQuestion2)
'
colQuestion2 = New DataColumn("questionAudio")
tblQuestion2.Columns.Add(colQuestion2)
'
colQuestion2 = New DataColumn("CanPlay")
tblQuestion2.Columns.Add(colQuestion2)
'
colQuestion2 = New DataColumn("counter", GetType(Int32))
colQuestion2.AutoIncrement = True
colQuestion2.AutoIncrementSeed = 1
tblQuestion2.Columns.Add(colQuestion2)

'+++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++

rndTblQuestion = New DataTable("randomQuestion")
rndColQuestion = New DataColumn("index")
rndTblQuestion.Columns.Add(rndColQuestion)

End Sub
'+++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++

Sub makeRandom()
Dim i, j, k, f As Integer
rndRowQuestion = rndTblQuestion.NewRow()
j = tblQuestion.Rows.Count - 1
rndRowQuestion("index") = Int(j) * Rnd() + 0
rndTblQuestion.Rows.Add(rndRowQuestion)
i = 0
k = 0
Do While i < 11
k = Int(j) * Rnd() + 0
f = rndRowQuestion("index")
If k <> f Then
rndRowQuestion = rndTblQuestion.NewRow()
rndRowQuestion("index") = k
rndTblQuestion.Rows.Add(rndRowQuestion)
i = i + 1
End If
Loop
End Sub

'+++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++

Sub bindMajor()
Dim conMajor As SqlConnection
Dim cmdMajor As SqlCommand
Dim dtrMajor As SqlDataReader

conMajor = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=azmoon")
cmdMajor = New SqlCommand("select majorName,majorCode from majors", conMajor)
conMajor.Open()
dtrMajor = cmdMajor.ExecuteReader
ddlMajor.DataSource = dtrMajor
ddlMajor.DataTextField = "majorName"
ddlMajor.DataValueField = "majorCode"
ddlMajor.DataBind()
dtrMajor.Close()
conMajor.Close()
End Sub

'+++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++

Sub ddlMajor_SelectedIndexChanged(ByVal s As Object, ByVal e As EventArgs)
Dim strCmd As String
Dim major As String
Dim conLesson As SqlConnection
Dim cmdLesson As SqlCommand
Dim dtrLesson As SqlDataReader

major = ddlMajor.SelectedItem.Value
conLesson = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=azmoon")


strCmd = "select * from lessons where majorCode=" & major & ""

cmdLesson = New SqlCommand(strCmd, conLesson)
conLesson.Open()
dtrLesson = cmdLesson.ExecuteReader
ddlLesson.DataSource = dtrLesson
ddlLesson.DataTextField = "lessonName"
ddlLesson.DataValueField = "lessonCode"
ddlLesson.DataBind()
dtrLesson.Close()
conLesson.Close()
End Sub

'+++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++
Sub btnShowQuestions_Click(ByVal s As Object, ByVal e As EventArgs)
Dim DiffLevel, lessonCode, majorCode As String
btnShowQuestions.Visible = "false"
ddlMajor.Visible = "false"
ddlLesson.Visible = "false"
ddlDiffLevel.Visible = "false"
lblMajor.Text = "رشته: " + (ddlMajor.SelectedItem.Text) + ""
lblLesson.Text = "درس: " + (ddlLesson.SelectedItem.Text) + ""
lblDiff.Text = "درجه سختی: " + (ddlDiffLevel.SelectedItem.Text) + ""
Dim i As Integer
DiffLevel = ddlDiffLevel.SelectedItem.Value
lessonCode = ddlLesson.SelectedItem.Value
majorCode = ddlMajor.SelectedItem.Value
Try
dstQuestion = New DataSet()
conQuestion = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=azmoon")
dadQuestion = New SqlDataAdapter("select questionQuestion, questionAnswerA, questionAnswerB, questionAnswerC, questionAnswerD, questionCorrectAnswer,questionImage,questionAudio from dbo.majors INNER JOIN dbo.lessons ON dbo.majors.majorCode = dbo.lessons.majorCode INNER JOIN dbo.questions ON dbo.lessons.lessonCode = dbo.questions.lessonCode where (dbo.questions.questionDiffLevel=" & DiffLevel & ")and (dbo.lessons.lessonCode=" & lessonCode & ") and (dbo.majors.majorCode=" & majorCode & ")and (dbo.questions.questionStatus='1')", conQuestion)

dadQuestion.Fill(dstQuestion, "tbl1")
tblQuestion = dstQuestion.Tables("tbl1")
makeRandom()
For i = 1 To 10
rndRowQuestion = rndTblQuestion.Rows(i)
rowQuestion = tblQuestion.Rows(rndRowQuestion("index"))
rowQuestion2 = tblQuestion2.NewRow()
rowQuestion2("questionQuestion") = rowQuestion("questionQuestion")
rowQuestion2("questionAnswerA") = rowQuestion("questionAnswerA")
rowQuestion2("questionAnswerB") = rowQuestion("questionAnswerB")
rowQuestion2("questionAnswerC") = rowQuestion("questionAnswerC")
rowQuestion2("questionAnswerD") = rowQuestion("questionAnswerD")
rowQuestion2("questionCorrectAnswer") = rowQuestion("questionCorrectAnswer")
rowQuestion2("questionImage") = rowQuestion("questionImage")
Dim imgVisibleState As String = rowQuestion("questionImage")
If imgVisibleState <> "" Then
rowQuestion2("haveImage") = "True"
Else
rowQuestion2("haveImage") = "False"
End If
rowQuestion2("questionAudio") = rowQuestion("questionAudio")
Dim visibleState As String = rowQuestion("questionAudio")
If visibleState <> "" Then
rowQuestion2("CanPlay") = True
Else
rowQuestion2("CanPlay") = False
End If
tblQuestion2.Rows.Add(rowQuestion2)
Next


tblQuestion = tblQuestion2
dlstQuestion.DataSource = tblQuestion
dlstQuestion.DataBind()
Catch ex As Exception
MsgBox(ex.Message)
End Try
correction.Visible = "true"
Session.Timeout = "3"
End Sub

'+++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++
Private player As New Microsoft.VisualBasic.Devices.Audio()
Protected Sub btnPlay_Click(ByVal s As Object, ByVal e As CommandEventArgs)

Try
player.Play(e.CommandName)
Catch ex As Exception
MsgBox(ex.Message)
End Try



End Sub
'+++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++

Protected Sub btnCorrection_Click(ByVal s As Object, ByVal e As System.EventArgs)
Dim counter As Integer
counter = 0
For i = 0 To 4
lblCorrectAnswer = dlstQuestion.Items.Item(i).FindControl("questionCorrectAnswer")

lblAnswerA = dlstQuestion.Items.Item(i).FindControl("questionAnswerA")

lblAnswerB = dlstQuestion.Items.Item(i).FindControl("questionAnswerB")

lblAnswerC = dlstQuestion.Items.Item(i).FindControl("questionAnswerC")

lblAnswerD = dlstQuestion.Items.Item(i).FindControl("questionAnswerD")

'+++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++
rbAnswerA = dlstQuestion.Items.Item(i).FindControl("rbA")
rbAnswerB = dlstQuestion.Items.Item(i).FindControl("rbB")
rbAnswerC = dlstQuestion.Items.Item(i).FindControl("rbC")
rbAnswerD = dlstQuestion.Items.Item(i).FindControl("rbD")

Select Case lblCorrectAnswer.Text
Case lblAnswerA.Text
If rbAnswerA.Checked Then
counter += 1
End If
Case lblAnswerB.Text
If rbAnswerB.Checked Then
counter += 1
End If
Case lblAnswerC.Text
If rbAnswerC.Checked Then
counter += 1
End If
Case lblAnswerD.Text
If rbAnswerD.Checked Then
counter += 1
End If
End Select
Next i
Dim conPoints As SqlConnection
Dim cmdPoints As SqlCommand
Dim dateTime As integer
Dim major As DropDownList
Dim lesson As DropDownList
major = FindControl("ddlMajor")
lesson = FindControl("ddlLesson")
dateTime = Year(now)&Month(now)&Day(now)
conPoints = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=azmoon")
cmdPoints = New SqlCommand("Insert into points(userUserName, majorCode, lessonCode, azmoonDate, grade) values (@userUserName, @majorCode, @lessonCode, @dateTime, @grade)", conPoints)
cmdPoints.Parameters.Add("@userUserName",sqlDbType.Char).Value = Session("user")
cmdPoints.Parameters.Add("@majorCode",sqlDbType.Int).Value = ddlMajor.SelectedItem.Value
cmdPoints.Parameters.Add("@lessonCode",sqlDbType.Int).Value = ddlLesson.SelectedItem.Value
cmdPoints.Parameters.Add("@dateTime",dateTime)
cmdPoints.Parameters.Add("@grade",sqlDbType.Int).Value = counter
conPoints.Open()
cmdPoints.ExecuteNonQuery()
conPoints.Close()
Response.Redirect("~/Result.aspx")
End Sub
</script>

<html dir="rtl">
<body>
<form id="form1" runat="server" style="height: 399px; width: 612px">
<p style="direction: rtl; margin-right: 0px; width: 626px; text-align: center;" class="style14">


&nbsp;&nbsp;<br />
&nbsp; &nbsp;<asp:Label ID="lblMajor" Text=" انتخاب رشته " runat="server" />&nbsp;<asp:DropDownList ID="ddlMajor" runat="server" AutoPostBack="True"
OnSelectedIndexChanged="ddlMajor_SelectedIndexChanged">
</asp:DropDownList>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<asp:Label ID="lblLesson" Text=" انتخاب درس" runat="server" />&nbsp;<asp:DropDownList ID="ddlLesson" runat="server" AutoPostBack="True"></asp:DropDownList>
&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;<asp:Label ID="lblDiff" Text=" درجه سختی" runat="server" />
<asp:DropDownList ID="ddlDiffLevel" runat="server">
<asp:ListItem Value="1">آسان</asp:ListItem>
<asp:ListItem Value="2">معمولی</asp:ListItem>
<asp:ListItem Value="3">سخت</asp:ListItem>
<asp:ListItem Value="4">خیلی سخت</asp:ListItem>
</asp:DropDownList>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;
&nbsp;<br />
<br />
<asp:DataList ID="dlstQuestion" runat="server" CellPadding="4" Font-Italic="False" Font-Names="Arial"
Font-Overline="False" Font-Size="XX-Small" Font-Strikeout="False" Font-Underline="False"
ForeColor="#333333" Height="309px" Width="910px">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<SelectedItemStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="AntiqueWhite" />
<AlternatingItemStyle BackColor="ButtonFace" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<ItemStyle BackColor="#EFF3FB" />
<ItemTemplate>
&nbsp;<asp:Label ID="lblCounter" runat="server" Font-Bold="True" Font-Size="Medium" Text='<%#Eval("counter") %>'></asp:Label><span
style="font-size: 12pt"><strong>- &nbsp;&nbsp;</strong></span>
<asp:Label ID="lblQuestion" runat="server" Font-Bold="True" Font-Italic="True" Font-Names="Tahoma"
Font-Size="Small" ForeColor="#404040" Height="23px" Text='<%#Eval("questionQuestion") %>'></asp:Label>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;
<asp:Label ID="questionCorrectAnswer" runat="server" Text='<%#Eval("questionCorrectAnswer") %>' Visible="true"></asp:Label>
<table style="width: 877px">
<tr>
<td style="width: auto">
<asp:Label ID="lblA" runat="server" Font-Bold="True" Font-Size="Medium">الف-</asp:Label><asp:Label
ID="questionAnswerA" runat="server" Text='<%#Eval("questionAnswerA") %>'></asp:Label><asp:RadioButton ID="rbA"
runat="server" Font-Bold="True" Font-Size="Small" GroupName="answer" Checked ="false" /></td>
<td style="width: auto">
<asp:Label ID="lblB" runat="server" Font-Bold="True" Font-Size="Medium">ب-</asp:Label><asp:Label
ID="questionAnswerB" runat="server" Text='<%#Eval("questionAnswerB") %>'></asp:Label><asp:RadioButton ID="rbB"
runat="server" Font-Bold="True" Font-Size="Small" GroupName="answer" Checked ="false" /></td>
<td style="width: auto">
<asp:Label ID="lblC" runat="server" Font-Bold="True" Font-Size="Medium">ج-</asp:Label><asp:Label
ID="questionAnswerC" runat="server" Text='<%#Eval("questionAnswerC") %>'></asp:Label><asp:RadioButton ID="rbC"
runat="server" Font-Bold="True" Font-Size="Small" GroupName="answer" Checked ="false"/></td>
<td style="width: auto">
<asp:Label ID="lblD" runat="server" Font-Bold="True" Font-Size="Medium">د-</asp:Label><asp:Label
ID="questionAnswerD" runat="server" Text='<%#Eval("questionAnswerD") %>'></asp:Label><asp:RadioButton ID="rbD"
runat="server" Font-Bold="True" Font-Size="Small" GroupName="answer" Checked ="false"/></td>
<asp:Image ID="img" runat="server" ImageUrl = '<%# Eval("questionImage") %>' Visible='<%#Eval("haveImage") %>' /><bt /><br />
<br /><asp:Button id="btnPlay" runat="server" OnCommand="btnPlay_Click" Text=" پخش صوت " CommandName ='<%#Eval("questionAudio") %>' Visible = '<% #Eval("CanPlay")%> '/><br /><br />
<td style="width: auto">
</td>

</tr>
</table>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span lang="en-us">&nbsp;<br />
&nbsp; </span>&nbsp;<span lang="en-us">&nbsp; </span>&nbsp; &nbsp; &nbsp;&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span lang="en-us">&nbsp;
&nbsp; </span>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
<br />
</ItemTemplate>
</asp:DataList>&nbsp;<br />
&nbsp; &nbsp;<asp:Button ID="btnShowQuestions" runat="server" OnClick="btnShowQuestions_Click" Text="نمایش سوالات" />
&nbsp;
<asp:Button ID="correction" runat="server" Text="مشاهده کارنامه" Width="86px" Visible="False" OnClick = "btnCorrection_Click" />&nbsp;<asp:Button
ID="Button1" runat="server" PostBackUrl="~/main.aspx" Text="انصراف" Width="88px" /><br />
<br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp;
<br />
<br />
<br />
<br />
<br />
<span lang="en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>
<br />
<br />
<br />
<br />
&nbsp; &nbsp; &nbsp;<br />
<br />
&nbsp;


</p>
</form>
</body>
</html>

Reza_Yarahmadi
جمعه 30 مرداد 1388, 19:05 عصر
دوست عزیز 300 خط کد گذاشتی جلوی من و میگی نگاه کن ببین چطور عمل کردم!! :متفکر:
یه مقدار توضیح بدید که هر کدوم از توابع چه کار میکنن. اصلا روش نمایش سؤالات چطوریه و ... تا اونموقع بشه در مورد روشی که پیش گرفتید نظر داد و بحث کرد. :چشمک:

B.I.O.H.A.Z.A.R.D
شنبه 31 مرداد 1388, 18:46 عصر
سلام. ممنون دوست عزیز. دیگه مهم نیست.:لبخند:
دیگه پروژه رو تموم کردم، فقط یه قسمت خیلی کوچیک مونده. 10 شهریور دفاعیه دارم.
مشکل آخر دیگه انشالله:عصبانی++:
کد زیر رو ببینید:

Sub btnSubmit_Click(ByVal s As Object, ByVal e As System.EventArgs)
Dim conForgot As SqlConnection
Dim cmdForgot As SqlCommand
Dim dtrForgot As SqlDataReader

conForgot = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=azmoon")
cmdForgot = New SqlCommand("Select userPassword, userUserName, userEmail, userSecurityQuestion, userAnswer from siteUsers where userUserName Like @userName and userEmail Like @userEmail and userSecurityQuestion Like @userSecurityQuestion and userAnswer Like @userAnswer", conForgot)

cmdForgot.Parameters.Add("@userName", txtUserName.Text)
cmdForgot.Parameters.Add("@userEmail", txtEmail.Text)
cmdForgot.Parameters.Add("@userSecurityQuestion", ddlQuestion.SelectedItem.Text)
cmdForgot.Parameters.Add("@userAnswer", txtAnswer.Text)
conForgot.Open()
dtrForgot = cmdForgot.ExecuteReader
If dtrForgot.Read Then
Dim Email As New System.Net.Mail.MailMessage
Email.From = New System.Net.Mail.MailAddress("biohazard_2@Yahoo.com")
Email.To.Add(New System.Net.Mail.MailAddress(txtEmail.Text))
Email.Subject = "Your Password"
Email.Body = dtrForgot("userPassword")
Email.BodyEncoding = System.Text.Encoding.UTF8
Email.IsBodyHtml = True
Dim SmtpSender As New System.Net.Mail.SmtpClient("127.0.0.1")
SmtpSender.Send(Email)
MsgBox("رمز ورودتان به ایمیل شما ارسال شد", MsgBoxStyle.Information, "پیام سیستم")
Else
MsgBox("مشخصات شما اشتباه است، لطفاً دقت نمایید", MsgBoxStyle.Critical, "خطا")
End If
conForgot.Close()
End Subقراره که اگه کسی رمزش یادش رفت، بیاد نام کاربری، ایمیل، سوال امنیتی و پاسخ رو بده، بعد
رمزش براش ایمیل شه. ولی نمیدونم چرا همش else اجرا میشه.:عصبانی++: واسه صفحه login هم از همین روش استفاده کردم، که یه موقع اگه user وجود نداشته باشه ارور بده، ولی نمیدونم چرا اینجا عمل نمیکنه.


پ.ن: بعد از 10 شهریور پروژه رو تو سایت قرار میدم، همه استفاده کنن.

Reza_Yarahmadi
شنبه 31 مرداد 1388, 23:36 عصر
فکر نمیکنم ایراد از کد باشه!! احتمالا بازم داده های توی بانک با چیزی که مد نظر شماست مغایرت داره.
ممکنه هم هست ایراد از نوع داده های تعریف شده در بانک باشه. میشه بگید از جه بانکی و برای هر فیلد از چه نوع داده ای استفاده کردید؟
یه نکته هم در مورد شرطها (چه توی دستورات شرطی و چه توی دستورات SQL) : اگر نیاز دارید چند شرط رو با هم And و یا Or کنید، شرطها رو با پرانتز از هم جدا کنید. اینطوری هم خوانایی برنامه بالا میره هم احتمال بروز خطا کمتر میشه.

B.I.O.H.A.Z.A.R.D
یک شنبه 01 شهریور 1388, 09:04 صبح
والا من هر چی user تو بانک داشتم تست کردم، نمیشه که نمیشه.
نوع داده ها در بانک:
userUserName: char 15
userPassword: char 15
userEmail: char 30
userSecurityQuestion: char 60
userAnswer: char 10
ولی فکر نکنم ایراد از از نوع داده باشه. همونطور که گفتم از همینا واسه login کردن تو سایت استفاده کردم. اونجا جواب داد. دیگه چیکار کنم؟؟؟؟

امروزم قراره نتیجه کنکور بیاد، از اضطراب اصلاً نمی تونم فکر کنم:اشتباه::اشتباه::ناراحت:: اراحت:

Reza_Yarahmadi
یک شنبه 01 شهریور 1388, 11:28 صبح
نوع داده char اگر مقدار داخلش Null باشه که هیچ ولی اگر داده ای داخلش باشه که از اندازه تعیین شده (اندازه هر فیلد) کمتر باشه با فضای خالی (Space) فیلد رو پر میکنه. مشکلی که با نوع کاربری داشتید و مجبور شدید چند فضای خالی به Admin اضافه کنید هم به همین خاطر بود. تمام نوع داده ها رو به nvarchar تغییر بدید و برنامه رو تست کنید ببینید درست میشه یا نه؟ (با داده های جدید تست کنید)

B.I.O.H.A.Z.A.R.D
یک شنبه 01 شهریور 1388, 13:18 عصر
ممنون از پاسختون
احتمالاً ایراد همینه، ولی آخه الان بیام دست بزنم کل برنامه رو باید تغییر بدم. به دردسرش نمیرزه.
شاید تغییرش بدم اگه وقت شد. کاریش نمیشه کرد:گیج:

به هر حال ممنونم.

B.I.O.H.A.Z.A.R.D
یک شنبه 01 شهریور 1388, 16:40 عصر
خیلی جالبه:خجالت:
نوع فیلد ها رو به nvarchar تغییر دادم، صفحه login رو هم متناسب با اون تغییر دادم،
ولی صفحه login از کار افتاد هیچ، این صفحه هم هیچ تغییری نکرد. فکر کنم باید بی خیال این یکی بشم.



50 دقیقه تا اعلام نتایج:افسرده::افسرده:

B.I.O.H.A.Z.A.R.D
سه شنبه 10 شهریور 1388, 17:52 عصر
با سلام
با همکاری دوستان بالاخره تونستم کار وبسایت رو تموم کنم. پروژه بصورت حرفه ای طراحی نشده
ولی برای مبتدی هایی مثل من خیلی خوبه. این پروژه رو قرار میدم تا کمکی به همه دوستان بشه. چون حجمش یه خورده بالاست، توی rapidshare آپلود میکنم.
لطفاً اگه نظری دارید در مورد این پروژه بنویسید. ممنون میشم.

لینک دانلود (http://rapidshare.com/files/274285158/AZMOON.zip.html)

farnooshhp
سه شنبه 10 شهریور 1388, 21:18 عصر
ممنون کار جالبی بود
راستی نتایج کنکور رضایت بخش بود؟ :چشمک:

B.I.O.H.A.Z.A.R.D
شنبه 14 شهریور 1388, 13:42 عصر
سلام. ممنون از لطفتون
والا رتبه 10720 به نظر شما خوبه؟ :متفکر::لبخندساده:

ببخشید دیر پست زدم، نمیتونستم این سایت رو باز کنم. هر چند وقت اینطوری میشه:چشمک: